Verication of Reactive Systems. Using DisCo and PVS. Pertti Kellomaki. Tampere University of Technology. Finland

Size: px
Start display at page:

Download "Verication of Reactive Systems. Using DisCo and PVS. Pertti Kellomaki. Tampere University of Technology. Finland"

Transcription

1 Verication of Reactive Systems Using DisCo and PVS Pertti Kellomaki Tampere University of Technology Software Systems Laboratory Finland Abstract. We have provided mechanical verication support for the DisCo language. DisCo is an object oriented specication language for the specication of reactive systems. The paper has two main contributions. The rst one is a mapping of object oriented specications to the PVS theorem prover, where their invariant properties can be mechanically veried. The second one is the systematic use of the theorem prover together with the animation facility of the DisCo environment when strengthening invariants. 1 Introduction This work was done in the DisCo project, whose aim is to develop a methodology and associated tools for the specication of reactive systems. The work on the specication language and the tools has been described elsewhere [1, 14, 15], so we will only introduce them briey here. Since the DisCo language has a well dened semantics, it is possible to reason formally about DisCo specications. This paper describes how invariant properties are veried using the PVS [18] theorem prover. Figure 1 gives an overview of the system. The user rst constructs a specication in the DisCo language. The specication can be examined using the animation tool, which can also be used to validate the specication against the informal requirements. Once the user is satised that the specication captures the requirements, formal verication can be used to increase condence in the specication. During verication we sometimes need to nd a stronger invariant that implies the invariant we want to verify. We use the theorem prover together with the animation tool for systematically strengthening invariants. The main contributions of this paper are the mapping of object oriented specications to the PVS logic, and the use of the theorem prover and the animation tool together for systematically strengthening invariants. We use a familiar example, the alternating bit protocol, to give a avor of what DisCo specications look like and how they are mapped to the logic of the theorem prover. The rest of the paper is structured as follows. Section 2 reviews some related work. Section 3 introduces the DisCo specication language using the alternating bit protocol as an example. Section 4 gives our formalization of TLA in PVS, and Section 5 describes the mapping of DisCo constructs to this

2 DisCo specication? compiler? animation - PVS specication - PVS? proof Fig. 1. The DisCo specication environment logic. Section 6 illustrates how invariants are proved, and Section 7 draws some conclusions and outlines future work. 2 Related Work Theorem provers have been applied to reasoning on action systems by Langbacka and von Wright [17, 19], who have formalized Temporal Logic of Actions (TLA) using the HOL [11] theorem prover. Engberg [9] has implemented a mechanical verication system for TLA using the LP [10] verication system. Our system is not intended to be a general purpose TLA prover, but we use a PVS formalization of TLA as the target logic. Chou [8] describes a general framework for reasoning about distributed algorithms with the HOL theorem prover. Properties of programs are veried by verifying the properties of their more abstract counterparts, and using a mapping between concrete and abstract programs. Agerholm [2] describes an experiment where existing specications written in VDM-SL were translated by hand to the PVS logic. The Unity [7] logic has been formalized using a variety of theorem provers [3, 6, 13] The main dierence between these and our work is that we deal with object oriented specications, where the number of variables is potentially innite. Also, we have implemented an automatic translation from the specication language to the logic of the theorem prover. 3 DisCo The DisCo specication language is based on the joint action approach of Back and Kurki-Suonio [4, 5]. A joint action system consists of a set of objects, and a set of actions. Whenever the guard of an action is true for some combination of participating objects, the action can be executed for them. The execution of

3 an action is atomic, and parallelism is modeled using nondeterministic choice of actions. The meaning of a DisCo specication is the set of execution sequences it allows. Rather than presenting all the details of the DisCo specication language, we show how a familiar example is specied using it. We do not use the language support for stepwise renement DisCo, but rather give the specication as a monolithic whole. In specications of realistic size, stepwise renement would be used, however. For brevity, we do not give the full specication here, just some representative parts of it. Figure 2 illustrates the specication in the DisCo animation tool. Fig. 2. Specication in the DisCo animation tool 3.1 The Alternating Bit Protocol We now briey outline the version of the alternating bit protocol we use as an example. The protocol ensures correct delivery of messages over an unreliable channel, which may lose messages but not corrupt them. In our version, there are two channels. The sender places messages on a message channel which the receiver can read, and the receiver places acknowledgments on an acknowledgment channel which the sender can read.

4 Both the sender and the receiver maintain one bit of additional information, which is transmitted in the messages and acknowledgments to the other party. In the initial state, the values of the bits are the same in the receiver and in the sender, and there are no messages nor acknowledgments in transit. When the sender wants to send a message, it stores the message on the message channel along with its bit, and enters a state indicating that it is expecting an acknowledgment. In this state it can then repeatedly send the message, until an acknowledgment with the same bit is received. When the acknowledgment is received, the sender inverts its bit, and enters a state where no acknowledgments are pending. The receiver repeatedly sends acknowledgments with the negation of its bit. When it reads a message with a bit equal to its own bit, it receives the message and negates its own bit. It then continues to send acknowledgments with the new value of the bit. 3.2 Specication of the Alternating Bit Protocol in DisCo We rst give a denition for the data channel. It has a single top level state indicating whether the channel contains a valid message. A message consists of the alternating bit and some data to be sent. class data channel is state *invalid, valid; extend valid by data : integer; bit : boolean; end; end; DisCo objects have a hierarchical state structure similar to Statecharts [12]. The extend clause declares the variables data and bit to reside within the state valid. When a data channel enters the state invalid, the variables become inactive. The asterisk in front of invalid indicates that it is the default state. The denition of ack channel is similar, so it is omitted here. A class denition describes the structure of the objects belonging to the class. There can be any number of objects, even innitely many. An implementation of a specication xes the number of objects of each class. Animation also requires a specic instance of the specication. Figure 2 shows an instance of the specication consisting of one object of each class. The class sender is dened next. It has two constant attributes in ch and out ch, which are references to channels. The history variable sent messages is used when formulating the main invariant about ordering of messages. The denition for class receiver is similar, so it is omitted here.

5 class sender(in ch : ack channel := null; out ch : data channel := null) is state *ready, waiting ack; last sent : integer; bit : boolean; sent messages : sequence integer; end; A number of assertions about the structure of the system are needed. They give the necessary conditions an implementation needs to fulll in order for the veried invariants to hold. These assertions are also initial conditions for the system. Some representative assertions are listed below. assert data receiver exists is 8 d : data channel :: 9 r : receiver :: r.in ch = d; assert well connected is 8 r : receiver :: 8 s : sender :: (s.out ch = r.in ch) = (s.in ch = r.out ch); assert unique ack sender is 8 r, rr : receiver :: r.out ch = rr.out ch => rr = r; The assertions sender data exists, receiver data exists, sender ack exists, receiver ack exists, and unique data sender, are omitted, as they are similar to those presented. For completeness, we also give here the assertions corresponding to the invariants we want to verify. The rst one relates the bits at the sender and receiver and the channels to each other, and the second one states that the protocol preserves message ordering. We return to these assertions in Section 6 when discussing verication. assert channel bits is 8 s : sender; r : receiver; data : data channel; ack : ack channel :: (s.out ch = data ^ data = r.in ch ^ s.in ch = ack ^ ack = r.out ch) => ((s.bit = r.bit => (ack.invalid or ack.valid.bit = : s.bit)) ^ (s.bit 6= r.bit) => (data.invalid or data.valid.bit = s.bit)); assert delivered messages is 8 s : sender; r : receiver :: (s.out ch = r.in ch ^ s.in ch = r.out ch) => (s.sent messages = r.received messages) _ (<s.last sent> & s.sent messages = r.received messages);

6 We next give the actions objects can participate in. The actions send and resend move a message from the sender to the data channel. The message to be sent in the send action is modeled as an action parameter, which receives an arbitrary integer value each time the action is executed. The message is stored in last sent for subsequent use in the action resend. The action resend is similar to send, and is omitted here. action send(m : integer) by s : sender; ch : data channel is when s.out ch = ch ^ s.ready do!s.waiting ack; { { state transition to state waiting ack s.last sent := m;!ch.valid; ch.valid.data := m; ch.valid.bit := s.bit; end; A message is received if its bit matches the bit of the receiver. Receiving a message removes it from the channel. The received message is appended to the sequence of received messages, and the alternating bit at the receiver is negated. action receive message by r : receiver; ch : data channel is when r.in ch = ch ^ ch.valid ^ ch.valid.bit = r.bit do r.bit := : r.bit; r.received messages := <ch.data> & r.received messages;!ch.invalid; end; The actions acknowledge and receive ack are similar to the actionssend and receive message. The actions lose message and lose ack lose the contents of a channel by entering the state invalid. We omit these actions here for brevity. 4 Temporal Logic In this section, we give a formalization of a temporal logic in the PVS logic. The logic is essentially Lamport's Temporal Logic of Actions, even though there are some dierences to the description of TLA in [16]. This is the logic to which the syntactic forms of the DisCo language are mapped to. We start by formalizing state, which is simply an uninterpreted abstract data type in our formalization: state : TYPE

7 Behaviors are sequences of states, so they are formalized as such: behavior: TYPE = [nat -> state] The types for temporal formulas, actions, and state predicates are the expected mappings temporal_formula : TYPE = [behavior -> bool] state_predicate : TYPE = [state -> bool] action : TYPE = [state,state -> bool] We represent terminating computations as nonterminating computations by repeating the last state. For this a stuttering step is needed. stutter(a : action) : action = LAMBDA (unprimed, primed : state) : A(unprimed, primed) or primed = unprimed In order to be able to use actions and state predicates as temporal formulas, we introduce lifting functions, which are declared as conversions to PVS. Whenever an action or a state predicate is encountered in a context requiring a temporal formula, it is automatically converted by PVS using these conversions. statepred2temporal((p: state_predicate)): temporal_formula = LAMBDA (b: behavior): P(b(0)) action2temporal((a: action)): temporal_formula = LAMBDA (b: behavior): A(b(0), b(1)) We next dene the temporal operator [] for a temporal formula F and behavior b: []((F: temporal_formula), (b: behavior)): bool = FORALL (n: nat): F(suffix(b, n)) We are now ready to dene what an invariant is. A state predicate P is an invariant for a system with initial condition I and actions A under some assumptions i [](P,b) holds for all behaviors b satisfying the assumptions and the initial condition, and consisting only of A steps or stuttering steps. invariant((p: state_predicate), (assumptions: bool), (I: state_predicate), (A: action)): bool = FORALL (b: behavior): assumptions AND I(b(0)) AND [](stutter(a),b) => [](P,b) We derive theorems corresponding to the inference rules of TLA. These theorems can then be used in invariant proofs. The theorem invariant rule is the standard technique for establishing invariants: show that the predicate holds in the initial state, and that none of the actions can invalidate it. The second theorem, invariant intro rule, allows us to introduce previously established

8 invariants as assumptions in a proof. Both of these are straightforward to prove. invariant_rule: THEOREM FORALL (P: state_predicate, assumptions: bool, I: state_predicate, A: action): (FORALL (b: behavior): NOT (I(b(0)) AND [](stutter(a),b)) OR ((assumptions AND I(b(0)) => P(b(0))) AND FORALL (n: nat): assumptions AND P(b(n)) AND A(b(n), b(n + 1)) => P(b(n + 1)))) => invariant(p, assumptions, I, A) invariant_intro_rule: THEOREM FORALL (assumptions: bool, P: state_predicate, I: state_predicate, A: action): invariant(p, assumptions, I, A) => FORALL (b: behavior): assumptions AND I(b(0)) AND [](stutter(a),b) => FORALL (n: nat): P(b(n)) It is often convenient to derive a stronger invariant implying the invariant we want to prove, and prove the stronger invariant. The invariant implication rule allows for this. invariant_implication_rule: THEOREM FORALL (assumptions: bool, Pstrong: state_predicate, Pweak: state_predicate, I: state_predicate, A: action): invariant(pstrong, assumptions, I, A) AND (FORALL (b: behavior, n: nat): assumptions and Pstrong(b(n)) => Pweak(b(n))) => invariant(pweak, assumptions, I, A) 5 Mapping DisCo to PVS In this section we describe the mapping of DisCo constructs to PVS using the specication in the previous section as an example. 5.1 Classes A DisCo class is represented as a record type in the PVS logic. Each of the components of the DisCo class gives rise to one or more elements in the record

9 type. For example, the the class sender maps to the type sender: TYPE FROM [# in_ch: objid, out_ch: objid, last_sent: [state -> int], bit: [state -> bool], sent_messages: [state -> list[int]], ready: [state -> bool], waiting_ack: [state -> bool], ref: objid #] There are two kinds of components in a class: parameters and variables. Parameters are constant components which do not change their values in actions, so they are represented as elements of the corresponding type. The eld in ch is an example of a parameter. Variables change their values in actions, so they are represented as functions from state to the appropriate type. The eld bit is an example of a variable. A DisCo state is an anonymous nite state machine. We represent a DisCo state as a collection of boolean variables. The elds ready and waiting ack correspond to a state in the DisCo class. The hierarchical structure of DisCo states is not preserved in the PVS representation. Parameters and variables embedded within states are converted to top level components by prexing them with the names of the enclosing state items. For example, the variable valid.bit is mapped to valid bit in the PVS representation. 5.2 Expressions Mapping DisCo expressions to PVS is straightforward. DisCo constants map to PVS constants, DisCo operators map to PVS operators, etc. References to parameters and variables within objects use the accessor functions PVS creates for a record type. Let s be an object of class sender. The reference s.in ch maps to in ch(s), since in ch is a parameter. The reference s.bit maps to bit(s)(state). References to DisCo states expand to references to the corresponding collections of boolean variables. 5.3 Assertions As was mentioned in Section 3, there are two kinds of assertions. The rst is exemplied by data receiver exists: assert data receiver exists is 8 d : data channel :: 9 r : receiver :: r.in ch = d; The assertion only refers to constant attributes of objects, so it cannot be invalidated by actions. There is thus no need to prove it as an invariant. We map these state-independent assertions to boolean formulas, which are taken as assumptions when doing verication. The assertion data receiver exists maps to

10 data_receiver_exists: bool = (FORALL (d: data_channel): (EXISTS (r: receiver): in_ch(r) = ref(d))) Assertions that can be invalidated by actions are mapped to boolean functions of state. For example, the assertion delivered messages maps to PVS as follows. delivered_messages_body((r: receiver), (s: sender), (other: state)): bool = ((out_ch(s) = in_ch(r)) AND (in_ch(s) = out_ch(r))) IMPLIES ((sent_messages(s)(other) = received_messages(r)(other)) OR ((append((: last_sent(s)(other) :), sent_messages(s)(other))) = received_messages(r)(other))) delivered_messages((other: state)): bool = (FORALL (s: sender): (FORALL (r: receiver): delivered_messages_body(r, s, other))) State-dependent assertions give rise to proof obligations. For each assertion, the following theorem is generated. assertion_is_invariant : THEOREM invariant(init, ACTIONS, assertion) The predicate INIT is the conjunct of all initial conditions and assertions, and ACTIONS is the conjunct of the actions. The bulk of the work involved in verifying an invariant goes into establishing that none of the actions can invalidate the invariant. It is often the case that most of the actions preserve the invariant almost trivially, and that only a handful of actions need special consideration. We produce a lemma action preserves assertion for each action-assertion pair. These lemmas together imply assertion is invariant, and help to modularize the proof. 5.4 Actions An action is a relation between two states, so we map it to a boolean function of states. A DisCo action only gives the changes that take place, leaving implicit what is left unchanged. The PVS counterpart needs to spell out the new values also for the unchanged parts of the state. Figure 3 gives the mapping of the action send to PVS. Parameters and participants map to existentially quantied variables. We give the guard as a separate function, since this is sometimes convenient when doing the verication. The body of an action consists of a sequence of assignments and state transitions, which are individually mapped to the corresponding PVS formulas. Assignments in DisCo map to equalities in PVS, with the left hand side mapping

11 send_guard((ch: data_channel), (s: sender), (m: int), (other: state)): bool = (out_ch(s) = ref(ch)) AND ready(s)(other) AND NOT waiting_ack(s)(other) send((unprimed, primed: state)): bool = (EXISTS (ch: data_channel, s: sender, m: int): (send_guard(ch, s, m, unprimed)) AND (((ready(s)(primed) = FALSE) AND ((waiting_ack(s)(primed) = TRUE) AND ((last_sent(s)(primed) = (m)) AND ((invalid(ch)(primed) = FALSE) AND ((valid(ch)(primed) = TRUE) AND ((valid_data(ch)(primed) = (m)) AND (valid_bit(ch)(primed) = (bit(s)(unprimed))))))))) AND (((FORALL (other: data_channel): ((other) /= (ch)) IMPLIES ((invalid(other)(primed) = (invalid(other)(unprimed))) AND ((valid(other)(primed) = (valid(other)(unprimed))) AND ((valid_data(other)(primed) = (valid_data(other)(unprimed))) AND (valid_bit(other)(primed) = (valid_bit(other)(unprimed)))))))) AND (((FORALL (other: sender): ((other) /= (s)) IMPLIES (last_sent(other)(primed) = (last_sent(other)(unprimed))))) AND ((FORALL (other: sender): ((other) /= (s)) IMPLIES ((ready(other)(primed) = (ready(other)(unprimed))) AND (waiting_ack(other)(primed) = (waiting_ack(other)(unprimed)))))))))) AND (h invalid, valid, and valid bit unchanged in ack channeli AND (h bit unchanged in receiveri AND (h received messages unchanged in receiveri AND (h bit unchanged in senderi AND h sent messages unchanged in senderi)))) Fig. 3. Mapping of the action send to PVS. to a reference in the primed state. State transitions map to assignments to the corresponding boolean variables in a similar fashion as references to state items map to references to boolean variables. 6 Verication of Invariants We set out to verify two invariants. The rst one is a simple invariant about how the bits of the sender, the receiver and the channels are related. The second one

12 concerns the messages that have been delivered over the channel. 6.1 Channel bits Observing how the values of the alternating bits are related, we produce an invariant candidate. As such the invariant is not very interesting, but it illustrates how we systematically strengthen invariant candidates using the animation tool. The proposed invariant is assert channel bits is 8 s : sender; r : receiver; data : data channel; ack : ack channel :: (s.out ch = data ^ data = r.in ch ^ s.in ch = ack ^ ack = r.out ch) => ((s.bit = r.bit => (ack.invalid or ack.valid.bit = : s.bit)) ^ (s.bit 6= r.bit) => (data.invalid or data.valid.bit = s.bit)); The attempted proof of channel bits leaves us with four subproofs that cannot be completed. The rst one is presented in Figure 4. Analyzing the subproof reveals that it represents a state where the bits are equal to one at both the sender and receiver, and an acknowledgment with the alternating bit equal to one is on transit (formulas -10, -11, and -13 in the sequent). Informal reasoning and suggests that this is not a reachable state of the system. Simulation with the DisCo animation tool also indicate this, so we strengthen channel bits with the conjunct not(s.bit ^ r.bit ^ ack.valid.bit). [-1] ss = s [-2] ack = ch [-3] ASSUMPTIONS [-4] INIT(b!1(0)) [-5] [] action2temporal(actions) [-6] (out_ch(s) = ref(data)) [-7] (ref(data) = in_ch(r)) [-8] (in_ch(s) = ref(ch)) [-9] (ref(ch) = out_ch(r)) f-10g bit(s)(s!1) f-11g bit(r)(s!1) f-12g valid(ch)(s!1) f-13g valid_bit(ch)(s!1) f-14g valid(data)(s!1) f-15g valid_bit(data)(s!1) f1g invalid(ch)(s!1) Fig. 4. An unresolved subproof from the proof of channel bits

13 Similar analysis of the three other subproofs reveals that they also represent nonreachable states. One represents exactly the same state as the rst one, and the two remaining ones represent an identical situation except that the common value of the bit is zero. The next invariant candidate is thus channel bits strengthened with conjuncts that exclude the nonreachable states: assert channel bits aux is 8 s : sender; r : receiver; data : data channel; ack : ack channel :: (s.out ch = data ^ data = r.in ch ^ s.in ch = ack ^ ack = r.out ch) => ((s.bit = r.bit => (ack.invalid or (not s.bit) = ack.valid.bit)) ^ (s.bit 6= r.bit => (data.invalid or data.valid.bit = s.bit)) ^ not(s.bit ^ r.bit ^ ack.valid.bit) ^ not((not s.bit) ^ (not r.bit) ^ (not ack.valid.bit))); We give here an outline of the proof of the lemma send preserves channel bits aux, which establishes that action send does not invalidate channel bits. Figure 5 shows the outline of the proof. (send_preserves_channel_bits_aux) (bddsimp) (hide 4-5) (bddsimp) (bddsimp) (propax) (assumptions...) (propax) (propax) (ground) Fig. 5. Outline of proof of send preserves channel bits aux The DisCo to PVS translation produces a custom proof script for automating the routine parts of an invariant proof. When the generated script is applied, it yields four subproofs. Three of these are resolved by using bdd simplication. The second subproof describes a situation where two senders are connected to the same data channel. This violates the assumption unique data sender, so we need to introduce it and the assumption sender unique reference suitably instantiated. With this additional information in the sequent, the PVS decision procedures can complete the proof. The other subproofs are similar to this one. Most branches are automatically proved by the PVS decision procedures, while some branches require suitable instances of the assumptions to be brought into the sequent.

14 The original assertion channel bits can now be proved by applying the invariant implication rule. 6.2 Delivered messages The second invariant establishes that the sequence of sent messages is a sux of the sequence of received messages. We cannot formulate this directly in DisCo, but the following assertion immediately implies it. assert delivered messages is 8 s : sender; r : receiver :: (s.out ch = r.in ch ^ s.in ch = r.out ch) => (s.sent messages = r.received messages) _ (<s.last sent> & s.sent messages = r.received messages); As was the case with channel bits, this invariant is not strong enough to be proved alone. We use the same technique of recognizing subproofs representing nonreachable states using the animation tool to produce a stronger version of the invariant. Somewhat arbitrarily, we separate some of the strengthening conjuncts to separate assertions. The strengthened delivered messages is assert delivered messages aux is 8 s : sender; r : receiver; ack : ack channel :: (s.out ch = r.in ch ^ s.in ch = ack ^ ack = r.out ch) => ((s.sent messages = r.received messages) _ (<s.last sent> & s.sent messages = r.received messages)) ^ not(s.bit = ack.valid.bit ^ s.sent messages = r.received messages) ^ not(s.bit 6= r.bit ^ s.sent messages = r.received messages) ^ not(s.bit = r.bit ^ s.sent messages 6= r.received messages); In addition to this, two auxiliary invariants are introduced: data not corrupted and ready bits. The rst one guarantees that once a message is placed on a data channel, its contents are not changed unless the bit is changed, too. The second introduces constraints on the values of the bits when the sender is in state ready. 7 Conclusions We have implemented a mechanized chain from DisCo specications to the logic of the PVS prover. This can be used for formal verication of invariant properties of DisCo specications. The main contributions of the paper are the mapping of an object oriented specication language to the PVS logic, and the use of the theorem prover together with the animation tool systematically to strengthen invariants.

15 7.1 Experiences on Verication The DisCo specication of the alternating bit protocol does not describe a single instance of a sender{receiver pair and the associated channels, but rather a world of senders, receivers, and channels. The class denitions for sender and receiver state that they can be connected to channels, but do not imply any particular structure. The structure needs to be given explicitly using assertions. Most of the subgoals not resolved by the PVS decision procedures have to do with this generality of the DisCo specication. For example, when the prover constructs a subproof corresponding the situation where two senders are connected to the same data channel, we need to refer to the appropriate assumptions in order to resolve the subproof. In practise this means expanding denitions and instantiating the resulting quantied formulas with appropriate values. Installing all the assumptions as automatic rewrites is not feasible, because that would make the search space for PVS decision procedures too large. Verifying a typical DisCo specication involves mostly reasoning about state machines, for which the PVS decision procedures are quite eective. Once a strong enough invariant has been found, it is thus usually not a problem to prove it. The main problem is how to nd the invariant. We use the failed subproofs together with the DisCo animation tool for systematic strengthening of invariants. We analyze the subproof to see if it represents an unreachable state, using simulation with the animation tool to augment informal reasoning. Once we are convinced that we have identied an unreachable state characterized by some assignment a of values to variables, we strengthen the invariant with the conjunct :a. It is quite often the case that the original invariant describes some intuitively understandable property of the system, but the strengthening conjuncts are not immediately obvious. It is thus easy to make mistakes with the strengthening conjuncts, which leads to wasted verication eorts. We are planning to use nite state methods as a quick check for the strengthened invariants before attempting a proof with PVS. The examples we have tried so far suggest that verication can be done with a reasonable amount of eort. It is dicult to estimate how much work has gone into the verication of the alternating bit protocol, as the tools have been under constant development, but we estimate that specifying and verifying a similar case would be a matter of a few weeks. 7.2 Future Work The PVS logic has proved to be exible enough to express the semantics of DisCo in a natural way. It would be interesting to compare how some other theorem provers using higher order logic would fare in this respect. So far we have concentrated on invariants, but we are planning eventually to extend this work to the verication of liveness properties. Invariant proofs have been attempted rst, because automatic support can be provided for them. Also, liveness proofs often need supporting invariants.

16 References 1. The DisCo home page Sten Agerholm. Translating specications in VDM-SL to PVS. In J. von Wright, T. Grundy, and J. Harrison, editors, Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics, volume 1125 of Lecture Notes in Computer Science, pages 1{16. Springer-Verlag, F. Andersen, K. D. Petersen, and J. S. Petterson. Program verication using HOL- UNITY. In J. J. Joyce and C.-J.H Seger, editors, International Workshop on Higher Order Logic and its Applications, volume 780 of Lecture Notes in Computer Science, pages 1{16, R. J. R. Back and R Kurki-Suonio. Distributed cooperation with action systems. ACM Transactions on Programming Languages and Systems, 10(4):513{554, October R. J. R. Back and R. Kurki-Suonio. Decentralization of process nets with a centralized control. Distributed Computing, (3):73{87, N. Brown and D. Mery. A proof environment for concurrent programs. In FME'93: Industrial Strength Formal Methods, volume 670 of Lecture Notes in Computer Science, pages 196{215, K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison- Wesley, Ching-Tsun Chou. Mechanical verication of distributed algorithms in higherorder logic. The Computer Journal, 38(1), Urban Engberg, Peter Grnning, and Leslie Lamport. Mechanical verication of concurrent systems with TLA. In G. v. Bochmann and D. K. Probst, editors, Computer Aided Verication { Fourth International Workshop. CAV'92. Montreal, Canada. June 29 - July 1, volume 663 of Lecture Notes in Computer Science. Springer Verlag, Stephen J. Garland and John V. Guttag. An overview of LP, the Larch prover. In Proceedings of the Third International Conference on Rewriting Techniques and Applications, volume 335 of Lecture Notes in Computer Science. Springer Verlag, Michael J. C. Gordon. HOL: A proof generating system for higher-order logic. In Graham Birtwistle and P. A. Subrahmanyam, editors, VLSI Specication, Verication and Synthesis, pages 73{128. Boston Kluwer Academic Publishers, David Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231{274, jun Barbara Heyd and Pierre Cregut. A modular coding of UNITY in COQ. In J. von Wright, T. Grundy, and J. Harrison, editors, Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics, volume 1125 of Lecture Notes in Computer Science, pages 251{266, Hannu-Matti Jarvinen. The Design of a Specication Language for Reactive Systems. PhD thesis, Tampere University of Technology, Reino Kurki-Suonio, Hannu-Matti Jarvinen, Markku Sakkinen, and Kari Systa. Object-oriented specication of reactive systems. In Proceedings of the 12th International Conference on Software Engineering, pages 63{71. IEEE Computer Society Press, Leslie Lamport. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872{923, May 1994.

17 17. Thomas Langbacka. A HOL formalization of the temporal logic of actions. volume 859 of Lecture Notes in Computer Science. Springer Verlag, S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verication system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction, volume 607 of Lecture Notes in Articial Intelligence, pages 748{752. Springer Verlag, J. von Wright and T. Langbacka. Using a theorem prover for reasoning about concurrent algorithms. In G. v. Bochmann and D. K. Probst, editors, Computer Aided Verication { Fourth International Workshop. CAV'92. Montreal, Canada. June 29 - July 1, volume 663 of Lecture Notes in Computer Science. Springer Verlag, This article was processed using the LATEX macro package with LLNCS style

In this paper we describe some aspects of a theory that gives a simple basis for operational models of reactive systems. It allows rigorous reasoning

In this paper we describe some aspects of a theory that gives a simple basis for operational models of reactive systems. It allows rigorous reasoning Real Time in a TLA-Based Theory of Reactive Systems Reino Kurki-Suonio and Mika Katara Software Systems Laboratory Tampere University of Technology P.O. Box 553, FIN-33101 Tampere, Finland e-mail: freino.kurki-suonio,

More information

for his support. Development of PVS was funded entirely by SRI International.

for his support. Development of PVS was funded entirely by SRI International. Acknowledgements. Friedrich von Henke (SRI, currently at U. of Ulm, Germany), David Cyrluk (Stanford), Judy Crow (SRI), Steven Phillips (Stanford), Carl Witty (currently at MIT), contributed to the design,

More information

capture cumulative changes over an interval, while in the HIOA model, the evolution of the continuous state variables over time is modeled using traje

capture cumulative changes over an interval, while in the HIOA model, the evolution of the continuous state variables over time is modeled using traje Developing Strategies for Specialized Theorem Proving about Untimed, Timed, and Hybrid I/O Automata? Sayan Mitra 1 and Myla Archer 2 1 MIT Laboratory for Computer Science, 200 Technology Square, Cambridge,

More information

has developed a specication of portions of the IEEE 854 oating-point standard in PVS [7]. In PVS, the injective function space injection can be dened

has developed a specication of portions of the IEEE 854 oating-point standard in PVS [7]. In PVS, the injective function space injection can be dened PVS: Combining Specication, Proof Checking, and Model Checking? To appear in CAV'96 S. Owre, S. Rajan, J. M. Rushby, N. Shankar, and M. Srivas Computer Science Laboratory, SRI International, Menlo Park

More information

Program Design in PVS. Eindhoven University of Technology. Abstract. Hoare triples (precondition, program, postcondition) have

Program Design in PVS. Eindhoven University of Technology. Abstract. Hoare triples (precondition, program, postcondition) have Program Design in PVS Jozef Hooman Dept. of Computing Science Eindhoven University of Technology P.O. Box 513, 5600 MB Eindhoven, The Netherlands e-mail: wsinjh@win.tue.nl Abstract. Hoare triples (precondition,

More information

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)

More information

The DisCo Language and Temporal Logic of Actions

The DisCo Language and Temporal Logic of Actions The DisCo Language and Temporal Logic of Actions (September 1990) Hannu-Matti Järvinen and Reino Kurki-Suonio hmj@tut.fi, rks@tut.fi Tampere University of Technology Software Systems Laboratory Box 527,

More information

Composing Fair Objects

Composing Fair Objects Composing Fair Objects G.W. Hamilton School of Computer Applications Dublin City University Ireland hamilton@compapp.dcu.ie D. Méry Université Henri Poincaré Nancy France mery@loria.fr J.P. Gibson Department

More information

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines Separating Product Variance and Domain Concepts in the Specification of Software Product Lines Pertti Kellomäki Software Systems Laboratory, Tampere University of Technology P.O. Box 553, FIN-33101 Tampere,

More information

valid abstract descriptions or to justify that a given abstraction is valid. In this paper, we propose a practical verication methodology that is, bas

valid abstract descriptions or to justify that a given abstraction is valid. In this paper, we propose a practical verication methodology that is, bas Abstract and Model Check while you Prove? To be presented at the eleventh International Conference on Computer-Aided Verication (CAV99), Trento, Italy, Jul 7-10, 1999 Hassen Sadi and Natarajan Shankar

More information

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214 Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in

More information

Random Testing in PVS

Random Testing in PVS Random Testing in PVS Sam Owre SRI International, Computer Science Laboratory 333 Ravenswood Avenue, Menlo Park, CA 94025, USA owre@csl.sri.com Abstract. Formulas are difficult to formulate and to prove,

More information

An LCF-Style Interface between HOL and First-Order Logic

An LCF-Style Interface between HOL and First-Order Logic An LCF-Style Interface between HOL and First-Order Logic Joe Hurd Computer Laboratory University of Cambridge, joe.hurd@cl.cam.ac.uk 1 Introduction Performing interactive proof in the HOL theorem prover

More information

Specifying and Proving Broadcast Properties with TLA

Specifying and Proving Broadcast Properties with TLA Specifying and Proving Broadcast Properties with TLA William Hipschman Department of Computer Science The University of North Carolina at Chapel Hill Abstract Although group communication is vitally important

More information

Leslie Lamport: The Specification Language TLA +

Leslie Lamport: The Specification Language TLA + Leslie Lamport: The Specification Language TLA + This is an addendum to a chapter by Stephan Merz in the book Logics of Specification Languages by Dines Bjørner and Martin C. Henson (Springer, 2008). It

More information

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu Semantic Foundations of Commutativity Analysis Martin C. Rinard y and Pedro C. Diniz z Department of Computer Science University of California, Santa Barbara Santa Barbara, CA 93106 fmartin,pedrog@cs.ucsb.edu

More information

Proof Pearl: The Termination Analysis of Terminator

Proof Pearl: The Termination Analysis of Terminator Proof Pearl: The Termination Analysis of Terminator Joe Hurd Computing Laboratory Oxford University joe.hurd@comlab.ox.ac.uk Abstract. Terminator is a static analysis tool developed by Microsoft Research

More information

A Note on Fairness in I/O Automata. Judi Romijn and Frits Vaandrager CWI. Abstract

A Note on Fairness in I/O Automata. Judi Romijn and Frits Vaandrager CWI. Abstract A Note on Fairness in I/O Automata Judi Romijn and Frits Vaandrager CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands judi@cwi.nl, fritsv@cwi.nl Abstract Notions of weak and strong fairness are studied

More information

the application rule M : x:a: B N : A M N : (x:a: B) N and the reduction rule (x: A: B) N! Bfx := Ng. Their algorithm is not fully satisfactory in the

the application rule M : x:a: B N : A M N : (x:a: B) N and the reduction rule (x: A: B) N! Bfx := Ng. Their algorithm is not fully satisfactory in the The Semi-Full Closure of Pure Type Systems? Gilles Barthe Institutionen for Datavetenskap, Chalmers Tekniska Hogskola, Goteborg, Sweden Departamento de Informatica, Universidade do Minho, Braga, Portugal

More information

INPUT SYSTEM MODEL ANALYSIS OUTPUT

INPUT SYSTEM MODEL ANALYSIS OUTPUT Detecting Null Pointer Violations in Java Programs Xiaoping Jia, Sushant Sawant Jiangyu Zhou, Sotiris Skevoulis Division of Software Engineering School of Computer Science, Telecommunication, and Information

More information

MACHINE golfclub (maxmembers, maxhandicap) CONSTRAINTS maxmembers : NAT & maxhandicap : NAT SETS PERSON members, handicaps INVARIANT members <: PERSON

MACHINE golfclub (maxmembers, maxhandicap) CONSTRAINTS maxmembers : NAT & maxhandicap : NAT SETS PERSON members, handicaps INVARIANT members <: PERSON Supporting the B-method in PVS: An Approach to the Abstract Machine Notation in Type Theory Cesar Mu~noz Computer Science Laboratory SRI International 333 Ravenswood Avenue Menlo Park, CA 94025, USA Email:

More information

From Event-B Models to Dafny Code Contracts

From Event-B Models to Dafny Code Contracts From Event-B Models to Dafny Code Contracts Mohammadsadegh Dalvandi, Michael Butler, Abdolbaghi Rezazadeh Electronic and Computer Science School, University of Southampton Southampton, United Kingdom {md5g11,mjb,ra3}@ecs.soton.ac.uk

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

This article was processed using the LaT E X macro package with LLNCS style

This article was processed using the LaT E X macro package with LLNCS style This article was processed using the LaT E X macro package with LLNCS style 4. J. R. Burch, E. M. Clarke, K. L. McMillan, and D. L. Dill. Sequential circuit verication using symbolic model checking. In

More information

Proofs and Proof Certification in the TLA + Proof System

Proofs and Proof Certification in the TLA + Proof System Proofs and Proof Certification in the TLA + Proof System Stephan Merz Inria Nancy Grand-Est & LORIA, Villers-lès-Nancy, France Abstract TLA + is a specification language originally designed for specifying

More information

Lee Pike. June 3, 2005

Lee Pike. June 3, 2005 Proof NASA Langley Formal Methods Group lee.s.pike@nasa.gov June 3, 2005 Proof Proof Quantification Quantified formulas are declared by quantifying free variables in the formula. For example, lem1: LEMMA

More information

A UNITY-based Formalism for Dynamic Distributed Systems

A UNITY-based Formalism for Dynamic Distributed Systems A UNITY-based Formalism for Dynamic Distributed Systems Daniel M. Zimmerman Computer Science 256-80 California Institute of Technology Pasadena, California 91125 USA dmz@cs.caltech.edu Abstract We describe

More information

MOCHA: Modularity in Model Checking??? Computing Science Research Center, Bell Laboratories.

MOCHA: Modularity in Model Checking??? Computing Science Research Center, Bell Laboratories. MOCHA: Modularity in Model Checking??? R. Alur 1, T.A. Henzinger 2, F.Y.C. Mang 2, S. Qadeer 2, S.K. Rajamani 2, and S. Tasiran 2 1 Computer & Information Science Department, University ofpennsylvania,

More information

How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor

How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor Leslie Lamport 1 Digital Equipment Corporation February 14, 1993 Minor revisions January 18, 1996 and September 14, 1996

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

Higher-Order Conditional Term Rewriting. In this paper, we extend the notions of rst-order conditional rewrite systems

Higher-Order Conditional Term Rewriting. In this paper, we extend the notions of rst-order conditional rewrite systems Higher-Order Conditional Term Rewriting in the L Logic Programming Language Preliminary Results Amy Felty AT&T Bell Laboratories 600 Mountain Avenue Murray Hill, NJ 07974 Abstract In this paper, we extend

More information

A proof-producing CSP solver: A proof supplement

A proof-producing CSP solver: A proof supplement A proof-producing CSP solver: A proof supplement Report IE/IS-2010-02 Michael Veksler Ofer Strichman mveksler@tx.technion.ac.il ofers@ie.technion.ac.il Technion Institute of Technology April 12, 2010 Abstract

More information

Formal Verification. Lecture 10

Formal Verification. Lecture 10 Formal Verification Lecture 10 Formal Verification Formal verification relies on Descriptions of the properties or requirements of interest Descriptions of systems to be analyzed, and rely on underlying

More information

Operational Semantics

Operational Semantics 15-819K: Logic Programming Lecture 4 Operational Semantics Frank Pfenning September 7, 2006 In this lecture we begin in the quest to formally capture the operational semantics in order to prove properties

More information

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab)

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Richard M. Murray Nok Wongpiromsarn Ufuk Topcu Calornia Institute of Technology AFRL, 25 April 2012 Outline Spin model checker: modeling

More information

Subtypes for Specications John Rushby Science Laboratory Computer International SRI Menlo Park, CA J. Rushby FSE97: Subtypes for Specications 1

Subtypes for Specications John Rushby Science Laboratory Computer International SRI Menlo Park, CA J. Rushby FSE97: Subtypes for Specications 1 of Software Engineering/European Software Foundations Conference, Zurich, Sep 97 Engineering Subtypes for Specications John Rushby Science Laboratory Computer International SRI Menlo Park, CA J. Rushby

More information

This chapter describes the syntax and semantics of the safemos programming language,

This chapter describes the syntax and semantics of the safemos programming language, A Real-time Programming Language R.W.S. Hale and He Jifeng Overview URL: http://www.cam.sri.com/tr/crc039/paper.ps.z Towards Verified Systems, Jonathan Bowen (ed.), Elsevier; 1992 This chapter describes

More information

A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm

A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm Appears as Technical Memo MIT/LCS/TM-590, MIT Laboratory for Computer Science, June 1999 A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm Miguel Castro and Barbara Liskov

More information

Asynchronous Models. Chapter Asynchronous Processes States, Inputs, and Outputs

Asynchronous Models. Chapter Asynchronous Processes States, Inputs, and Outputs Chapter 3 Asynchronous Models 3.1 Asynchronous Processes Like a synchronous reactive component, an asynchronous process interacts with other processes via inputs and outputs, and maintains an internal

More information

Provably Correct Software

Provably Correct Software Provably Correct Software Max Schäfer Institute of Information Science/Academia Sinica September 17, 2007 1 / 48 The Need for Provably Correct Software BUT bugs are annoying, embarrassing, and cost gazillions

More information

TLA + Proofs. 1 Introduction. Denis Cousineau 1, Damien Doligez 2, Leslie Lamport 3, Stephan Merz 4, Daniel Ricketts 5, and Hernán Vanzetto 4

TLA + Proofs. 1 Introduction. Denis Cousineau 1, Damien Doligez 2, Leslie Lamport 3, Stephan Merz 4, Daniel Ricketts 5, and Hernán Vanzetto 4 TLA + Proofs Denis Cousineau 1, Damien Doligez 2, Leslie Lamport 3, Stephan Merz 4, Daniel Ricketts 5, and Hernán Vanzetto 4 1 Inria - Université Paris Sud, Orsay, France. 2 Inria, Paris, France 3 Microsoft

More information

Tidying up the Mess around the Subsumption Theorem in Inductive Logic Programming Shan-Hwei Nienhuys-Cheng Ronald de Wolf bidewolf

Tidying up the Mess around the Subsumption Theorem in Inductive Logic Programming Shan-Hwei Nienhuys-Cheng Ronald de Wolf bidewolf Tidying up the Mess around the Subsumption Theorem in Inductive Logic Programming Shan-Hwei Nienhuys-Cheng cheng@cs.few.eur.nl Ronald de Wolf bidewolf@cs.few.eur.nl Department of Computer Science, H4-19

More information

The DisCo2000 Specification Language Annotated version

The DisCo2000 Specification Language Annotated version Tampere University of Technology Software Systems Laboratory Project DisCo O IS Hannu-Matti Järvinen The DisCo2000 Specification Language Annotated version DisCo Working Paper March 25, 2003 . Introduction

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen INF672 Protocol Safety and Verication Karthik Bhargavan Xavier Rival Thomas Clausen 1 Course Outline Lecture 1 [Today, Sep 15] Introduction, Motivating Examples Lectures 2-4 [Sep 22,29, Oct 6] Network

More information

Formalizing Dijkstra

Formalizing Dijkstra Formalizing Dijkstra 1 Formalizing Dijkstra John Harrison Intel Corporation A Discipline of Programming Mechanizing programming logics Relational semantics Weakest preconditions Guarded commands Theorems

More information

A Lift Controller in Lustre. (a case study in developing a reactive system) Leszek Holenderski

A Lift Controller in Lustre. (a case study in developing a reactive system) Leszek Holenderski Presented at 5 th Nordic Workshop on Program Correctness, Turku, Finland, October 25{28, 1993. Published in Proc. of the 5 th Nordic Workshop on Program Correctness, ed. R.J.R. Back and K. Sere, Abo Akademi

More information

Towards certification of TLA + proof obligations with SMT solvers

Towards certification of TLA + proof obligations with SMT solvers Towards certification of TLA + proof obligations with SMT solvers Stephan Merz and Hernán Vanzetto INRIA Nancy Grand-Est & LORIA Nancy, France Abstract TLA + is a formal specification language that is

More information

Myla Archer, Constance Heitmeyer, and Steve Sims. farcher, heitmeyer, Abstract

Myla Archer, Constance Heitmeyer, and Steve Sims. farcher, heitmeyer, Abstract TAME: A PVS Interface to Simplify Proofs for Automata Models Presented at UITP 98, Eindhoven, Netherlands, July 13-15, 1998 Myla Archer, Constance Heitmeyer, and Steve Sims Code 5546, Naval Research Laboratory,

More information

Inductive Proof Outlines for Multithreaded Java with Exceptions

Inductive Proof Outlines for Multithreaded Java with Exceptions Inductive Proof Outlines for Multithreaded Java with Exceptions Extended Abstract 30. April, 2004 Erika Ábrahám1, Frank S. de Boer 2, Willem-Paul de Roever 1, and Martin Steffen 1 1 Christian-Albrechts-University

More information

Formal verication of programs for abstract register machines

Formal verication of programs for abstract register machines Bull. Nov. Comp. Center, Comp. Science, 35 (2013), 3956 c 2013 NCC Publisher Formal verication of programs for abstract register machines D. A. Chkliaev, V. A. Nepomniaschy Abstract. Abstract register

More information

Introduction to Formal Methods

Introduction to Formal Methods 2008 Spring Software Special Development 1 Introduction to Formal Methods Part I : Formal Specification i JUNBEOM YOO jbyoo@knokuk.ac.kr Reference AS Specifier s Introduction to Formal lmethods Jeannette

More information

Lecture Notes on Monadic Logic Programming

Lecture Notes on Monadic Logic Programming Lecture Notes on Monadic Logic Programming 15-816: Linear Logic Frank Pfenning Lecture 20 We have discussed both forward and backward chaining at length; in this lecture we address the question how they

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Pretty-Big-Step Semantics

Pretty-Big-Step Semantics Pretty-Big-Step Semantics Arthur Charguéraud INRIA arthur.chargueraud@inria.fr Abstract. In spite of the popularity of small-step semantics, big-step semantics remain used by many researchers. However,

More information

A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol

A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol Sanae El Mimouni, Rajaa Filali, Anas Amamou, Bahija Boulamaat and Mohamed Bouhdadi Abstract The Remote

More information

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj SCR*: A Toolset for Specifying and Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj Naval Research Laboratory, Code 5546, Washington, DC 20375, USA Abstract.

More information

A Light-Weight Framework for Hardware. Verication. Dept. of Computer Science, University of British Columbia.

A Light-Weight Framework for Hardware. Verication. Dept. of Computer Science, University of British Columbia. A Light-Weight Framework for Hardware Verication Christoph Kern, Tarik Ono-Tesfaye and Mark R. Greenstreet? Dept. of Computer Science, University of British Columbia Vancouver, BC V6T 1Z4, Canada fckern,tesfaye,mrgg@cs.ubc.ca

More information

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA Thunks (continued) Olivier Danvy, John Hatcli Department of Computing and Information Sciences Kansas State University Manhattan, Kansas 66506, USA e-mail: (danvy, hatcli)@cis.ksu.edu Abstract: Call-by-name

More information

Rance Cleaveland The Concurrency Factory is an integrated toolset for specication, simulation,

Rance Cleaveland The Concurrency Factory is an integrated toolset for specication, simulation, The Concurrency Factory Software Development Environment Rance Cleaveland (rance@csc.ncsu.edu) Philip M. Lewis (pml@cs.sunysb.edu) y Scott A. Smolka (sas@cs.sunysb.edu) y Oleg Sokolsky (oleg@ccc.com) y

More information

fcyrluk, sree, shankar, verication lies in their generality. The major practical challenge

fcyrluk, sree, shankar, verication lies in their generality. The major practical challenge Eective Theorem Proving for Hardware Verication? D. Cyrluk, 1 S. Rajan, 2 N. Shankar, 3 and M.K. Srivas 3 fcyrluk, sree, shankar, srivasg@csl.sri.com 1 Dept. of Computer Science, Stanford University, Stanford

More information

Implementing I/O-Automaton Specifications on Erlang

Implementing I/O-Automaton Specifications on Erlang SCIS & ISIS 2010, Dec. 8-12, 2010, Okayama Convention Center, Okayama, Japan Implementing I/O-Automaton Specifications on Erlang Yoshinobu Kawabe and Jun Zhao Department of Information Science Aichi Institute

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Violations of the contract are exceptions, and are usually handled by special language constructs. Design by contract

Violations of the contract are exceptions, and are usually handled by special language constructs. Design by contract Specification and validation [L&G Ch. 9] Design patterns are a useful way to describe program structure. They provide a guide as to how a program fits together. Another dimension is the responsibilities

More information

time using O( n log n ) processors on the EREW PRAM. Thus, our algorithm improves on the previous results, either in time complexity or in the model o

time using O( n log n ) processors on the EREW PRAM. Thus, our algorithm improves on the previous results, either in time complexity or in the model o Reconstructing a Binary Tree from its Traversals in Doubly-Logarithmic CREW Time Stephan Olariu Michael Overstreet Department of Computer Science, Old Dominion University, Norfolk, VA 23529 Zhaofang Wen

More information

KAT and PHL in Coq. 1 Introduction. 2 Revision of KAT and PHL concepts. David Pereira 1 and Nelma Moreira 1

KAT and PHL in Coq. 1 Introduction. 2 Revision of KAT and PHL concepts. David Pereira 1 and Nelma Moreira 1 KAT and PHL in Coq David Pereira 1 and Nelma Moreira 1 LIACC University of Porto {dpereira,nam}@ncc.up.pt Abstract. In this paper we describe an implementation of Kleene Algebras with Tests (KAT) in the

More information

Abstract This paper describes AxSL, an Axiomatic Specication Language that extends algebraic axiom methods to support object-oriented concepts such as

Abstract This paper describes AxSL, an Axiomatic Specication Language that extends algebraic axiom methods to support object-oriented concepts such as Extending Algebraic Axiom Techniques to Handle Object-Oriented Specications Alyce Brady, Member, IEEE David R. Musser, Member, IEEE Computer Society David L. Spooner, Member, IEEE August 2, 1999 Abstract

More information

Recursion and Induction

Recursion and Induction Recursion and Induction Paul S. Miner NASA Langley Formal Methods Group p.s.miner@nasa.gov 28 November 2007 Outline Recursive definitions in PVS Simple inductive proofs Automated proofs by induction More

More information

Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion

Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion CS236368 Formal Specifications Lecture-- TLA 1 Basic Idea Combine transitions with temporal logic

More information

Towards a Reference Framework. Gianpaolo Cugola and Carlo Ghezzi. [cugola, P.za Leonardo da Vinci 32.

Towards a Reference Framework. Gianpaolo Cugola and Carlo Ghezzi. [cugola, P.za Leonardo da Vinci 32. Inconsistencies in Software Development: Towards a Reference Framework Gianpaolo Cugola and Carlo Ghezzi [cugola, ghezzi]@elet.polimi.it Dipartimento di Elettronica e Informazione Politecnico di Milano

More information

Edinburgh Research Explorer

Edinburgh Research Explorer Edinburgh Research Explorer System Description: CyNTHIA Citation for published version: Whittle, J, Bundy, A, Boulton, R & Lowe, H 1999, System Description: CyNTHIA. in Automated Deduction CADE-16: 16th

More information

Design Templates for Collective Behavior

Design Templates for Collective Behavior Design Templates for Collective Behavior Pertti Kellomäki 1 and Tommi Mikkonen 2 1 Software Systems Laboratory, Tampere University of Technology, P.O Box 553, FIN-33101 Tampere, Finland pk@cs.tut.fi 2

More information

Invariant Based Programming

Invariant Based Programming Invariant Based Programming Ralph-Johan Back Abo Akademi and TUCS June 2006 Constructing correct programs: alternative approaches A posteriori correctness proof (Floyd, Naur, Hoare,...). Prove correctness

More information

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language

More information

On Meaning Preservation of a Calculus of Records

On Meaning Preservation of a Calculus of Records On Meaning Preservation of a Calculus of Records Emily Christiansen and Elena Machkasova Computer Science Discipline University of Minnesota, Morris Morris, MN 56267 chri1101, elenam@morris.umn.edu Abstract

More information

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such A Formal Executable Semantics for Java Isabelle Attali, Denis Caromel, Marjorie Russo INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex - France tel:

More information

On the Diculty of Software Key Escrow. Abstract. At Eurocrypt'95, Desmedt suggested a scheme which allows individuals to encrypt

On the Diculty of Software Key Escrow. Abstract. At Eurocrypt'95, Desmedt suggested a scheme which allows individuals to encrypt On the Diculty of Software Key Escrow Lars R. Knudsen Katholieke Universiteit Leuven Dept. Elektrotechniek-ESAT Kardinaal Mercierlaan 94 B-3001 Heverlee Torben P. Pedersen y Cryptomathic Arhus Science

More information

S. Owre, J. M. Rushby, N. Shankar and M. K. Srivas. fowre, rushby, shankar,

S. Owre, J. M. Rushby, N. Shankar and M. K. Srivas. fowre, rushby, shankar, A Tutorial on Using PVS for Hardware Verication? S. Owre, J. M. Rushby, N. Shankar and M. K. Srivas fowre, rushby, shankar, srivasg@csl.sri.com Computer Science Laboratory, SRI International, Menlo Park

More information

diasem_r(1) unfold_l(3) N12 N13 unfold_l(3) N14 unfold_l(1) N16 N10 N17

diasem_r(1) unfold_l(3) N12 N13 unfold_l(3) N14 unfold_l(1) N16 N10 N17 Tool Description for ETAPS'01/TACAS: The EVT Erlang Verication Tool Thomas Noll 1, Lars{ake Fredlund 2, and Dilian Gurov 2 1 Department of Teleinformatics, Royal Institute of Technology (KTH), Stockholm,

More information

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream Agent Roles in Snapshot Assembly Delbert Hart Dept. of Computer Science Washington University in St. Louis St. Louis, MO 63130 hart@cs.wustl.edu Eileen Kraemer Dept. of Computer Science University of Georgia

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

A Formal V&V Framework for UML Models Based on Model Transformation Techniques A Formal V&V Framework for UML Models Based on Model Transformation Techniques Soon-Kyeong Kim and David Carrington Information Technology and Electrical Engineering The University of Queensland, St. Lucia,

More information

A Michael Jackson presentation. CSE503: Software Engineering. The following slides are from his keynote at ICSE 1995

A Michael Jackson presentation. CSE503: Software Engineering. The following slides are from his keynote at ICSE 1995 A Michael Jackson presentation CSE503: Software Engineering The following slides are from his keynote at ICSE 1995 David Notkin University of Washington Computer Science & Engineering Spring 2006 1 2 3

More information

Lecture Notes on Static Semantics

Lecture Notes on Static Semantics Lecture Notes on Static Semantics 15-411: Compiler Design Frank Pfenning Lecture 12 October 8, 2015 1 Introduction After lexing and parsing, a compiler will usually apply elaboration to translate the parse

More information

1 Background Based on a general background in programming language semantics (cf. [PH97a]) and its relation to programming logics, we investigated the

1 Background Based on a general background in programming language semantics (cf. [PH97a]) and its relation to programming logics, we investigated the Developing Provably Correct Programs From Object-Oriented Components Peter Muller Fachbereich Informatik, Fernuniversitat Feithstr. 140, 58084 Hagen, Germany Tel: (++49 2331) 987-4870 Email: Peter.Mueller@fernuni-hagen.de

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic 3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

More information

Translation validation: from Simulink to C

Translation validation: from Simulink to C Translation validation: from Simulink to C Ofer Strichman Michael Ryabtsev Technion, Haifa, Israel. Email: ofers@ie.technion.ac.il, michaelr@cs.technion.ac.il Abstract. Translation validation is a technique

More information

Abstract formula. Net formula

Abstract formula. Net formula { PEP { More than a Petri Net Tool ABSTRACT Bernd Grahlmann and Eike Best The PEP system (Programming Environment based on Petri Nets) supports the most important tasks of a good net tool, including HL

More information

StateClock: a Tool for Timed Reactive Modules

StateClock: a Tool for Timed Reactive Modules StateClock: a Tool for Timed Reactive Modules Jonathan S. Ostroff Department Of Computer Science, York University, Toronto, Canada, M3J 1P3. Email: jonathan@yorku.ca Abstract: We provide an overview of

More information

Model Checking VHDL with CV

Model Checking VHDL with CV Model Checking VHDL with CV David Déharbe 1, Subash Shankar 2, and Edmund M. Clarke 2 1 Universidade Federal do Rio Grande do Norte, Natal, Brazil david@dimap.ufrn.br 2 Carnegie Mellon University, Pittsburgh,

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

Consistency and Set Intersection

Consistency and Set Intersection Consistency and Set Intersection Yuanlin Zhang and Roland H.C. Yap National University of Singapore 3 Science Drive 2, Singapore {zhangyl,ryap}@comp.nus.edu.sg Abstract We propose a new framework to study

More information

The Prototype Verification System PVS

The Prototype Verification System PVS The Prototype Verification System PVS Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at

More information

[12] Sam Owre, John Rushby, Natarajan Shankar, and Friedrich von Henke. Formal

[12] Sam Owre, John Rushby, Natarajan Shankar, and Friedrich von Henke. Formal [12] Sam Owre, John Rushby, Natarajan Shankar, and Friedrich von Henke. Formal verication for fault-tolerant architectures: Some lessons learned. In J. C. P. Woodcock and P. G. Larsen, editors, FME '93:

More information

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally Hazard-Free Connection Release Jennifer E. Walter Department of Computer Science Texas A&M University College Station, TX 77843-3112, U.S.A. Jennifer L. Welch Department of Computer Science Texas A&M University

More information

Lecture 11 Lecture 11 Nov 5, 2014

Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification/Methods Lecture 11 Lecture 11 Nov 5, 2014 Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems to be analyzed, and

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

component( and_gate, X1 X2 Y output(y))). (a) Gate (b) MDG-HDL (d) MDG (c) Table

component( and_gate, X1 X2 Y output(y))). (a) Gate (b) MDG-HDL (d) MDG (c) Table Verication of the MDG Components Library in HOL Paul Curzon 1, Soene Tahar 2, and Otmane At Mohamed 3 1 School of Computing Science, Middlesex University, London, UK p.curzon@mdx.ac.uk 2 ECE Department,

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information