20 research outputs found
The cooperation test:a syntax-directed verification method
The cooperation test was originally conceived to capture the proof theoretical analogue of distributed message passing between disjoint processes, as opposed to the interference test, being the proof theoretical analogue of concurrency based on interference by jointly shared variables. Since then the cooperation test has been applied to characterize concurrent communication in Hoare’s Communicating Sequential Processes, Ichbiah’s ADA, and Brinch Hansen’s Distributed Processes, supported by soundness and completeness proofs. An overview is given of the rationale underlying this characterization, culminating in the development of proof systems for monitor based programming languages for concurrency which combine distributed message passing between processes with interference through local variables of a process which are shared between its subprocesses
Designing distributed algorithms by means of formal sequentially phased reasoning (extended abstract)
Designers of network algorithms give elegant informal descriptions of the intuition behind their algorithms (see [GHS83, Hu83, MS79, Se82, Se83, ZS80]). Usually, these descriptions are structured as if tasks or subtasks are performed sequentially. From an operational point of view, however, they are performed concurrently. Here, we present a design principle that formally describes how to develop algorithms according to such sequentially phased explanations. The design principle is formulated using Manna and Pnueli's linear time temporal logic [MP83]. This principle, together with Chandy and Misra's technique [CM88] or Back and Sere's technique [BS89] for designing parallel algorithms, is applicable to large classes of algorithms, such as those for minimum-path, connectivity, network flow, and minimum-weight spanning trees. In particular, the distributed minimum-weight spanning tree algorithm of Gallager, Humblet, and Spira [GHS83] is structured according to our principle
Compositionality and concurrent networks:soundness and completeness of a proofsystem
Specification, construction and verification of programs should be done in a compositional way. This means that for each syntactic programming construct it should be possible to infer a specification for the whole construct from specifications of the constituent syntactic components of that construct. A compositional proofsystem is presented for a language that includes parallel executing networks and recursive creation of subnetworks. This system is then shown to be arithmetically complete
Compositional semantics for real-time distributed computing
We give a compositional denotational semantics for a real-time distributed language, based on the linear history semantics for CSP of Francez et al. Concurrent execution is not modelled by interleaving but by an extension of the maximal parallelism model of Salwicki, that allows the modelling of transmission time for communications. The importance of constructing a semantics (and in general a proof theory) for real-time is stressed by such different sources as the problem of formalizing the real-time aspects of Ada and the elimination of errors in real-time flight control software ([Sunday Times 7-22-84])
KARAKTERISTIK FISIK LIPSTIK SARI KULIT BUAH NAGA MERAH (Hylocereus costaricensis) DENGAN VARIASI PERBANDINGAN KONSENTRASI CARNAUBA WAX DAN BEESWAX
Kulit buah naga merah sebagai limbah yang dapat dimanfaatkan zat warna merah antosianin sebagai pewarna alami sediaan lipstik. Pewarna alami memiliki keunggulan yaitu lebih aman dan adanya aktivitas antioksidannya. Lisptik yang baik ditinjau dari karakteristik fisiknya yang dipengaruhi oleh basis lisptik yaitu lilinya berupa Carnauba wax dan Beeswax. Penelitian ini bertujuan untuk mengetahui karakteristik fisik lipstik sari kulit buah naga merah dengan variasi perbandingan Carnauba wax dan Beeswax.Sari kulit buah naga merah diperoleh dengan proses penyaringan hasil blender kulit buah naga merah yang rendemen sarinya sebesar 81.78 %. Dirancang lima formula lipstik dengan konsentrasi sari kulit buah naga merah sebesar 25% dan perbandingan antara Carnauba wax: Beeswax pada F1 (1:1), F2 (1:2), F3 (1:3), F4 (2:1) dan F5 (3:1). Metode pembuatan lipstik yang digunakan adalah metode peleburan dan pencampuran sari kulit buah naga merah dalam suhu yang tidak terlalu panas. Lipstik yang dihasilkan diujikan karakteristik fisik dan daya olesnya.Hasil menunjukkan bahwa lipstik sari kulit buah naga merah memiliki warna merah muda, homogen dengan pH lipstik 5,1. Hasil analisis statistik menunjukkan bahwa semakin meningkatnya konsentrasi Beeswax dapat menurunkan titik lebur dan kekerasannya namun sebaliknya semakin meningkatnya konsentrasi Carnauba wax akan meningkatkan pula titik lebur dan kekerasannya. Dari kelima formula masih memenuhi karkateristik fisik lipstik yang dapat diterima namun daya olesnya belum cukup baik karena ketika dioleskan warna belum intensif.   Kata kunci: Antosianin, Beeswax, Carnauba wax, Lipstik
Proving Reachability-Logic Formulas Incrementally
International audienceReachability Logic (RL) is a formalism for defining the operational semantics of programming languages and for specifying program properties. As a program logic it can be seen as a language-independent alternative to Hoare Logics. Several verification techniques have been proposed for RL, all of which have a circular nature: the RL formula under proof can circularly be used as a hypothesis in the proof of another RL formula, or even in its own proof. This feature is essential for dealing with possibly unbounded repetitive behaviour (e.g., program loops). The downside of such approaches is that the verification of a set of RL formulas is monolithic, i.e., either all formulas in the set are proved valid, or nothing can be inferred about any of the formula's validity or invalidity. In this paper we propose a new, incremental method for proving a large class of RL formulas. The proposed method takes as input a given RL formula under proof (corresponding to a given program fragment), together with a (possibly empty) set of other valid RL formulas (e.g., already proved using our method), which specify sub-programs of the program fragment under verification. It then checks certain conditions are shown to be equivalent to the validity of the RL formula under proof. A newly proved formula can then be incrementally used in the proof of other RL formulas, corresponding to larger program fragments. The process is repeated until the whole program is proved. We illustrate our approach by verifying the nontrivial Knuth-Morris-Pratt string-matching program