Software Design, Modelling and Analysis in UML

Size: px
Start display at page:

Download "Software Design, Modelling and Analysis in UML"

Transcription

1 Software Design, Modelling and Analysis in UML Lecture 14: Core State Machines IV main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

2 Contents & Goals Last Lecture: System configuration Transformer Action language: skip, update, send This Lecture: Educational Objectives: Capabilities for following tasks/questions. What does this State Machine mean? What happens if I inject this event? Can you please model the following behaviour. What is: Signal, Event, Ether, Transformer, Step, RTC Sprelim Content: Transformers for Action Language Run-to-completion Step Putting It All Together 2/38

3 Transformer Cont d 3/ main

4 Sactlang Transformer: Create abstract syntax create(c, expr, v) concrete syntax intuitive semantics Create an object of class C and assign it to attribute v of the object denoted by expression expr. well-typedness expr : τ D, v atr(d), atr(c) = { v 1 : τ 1,expr 0 i 1 i n} semantics observables (error) conditions IÂexpr Ã(σ, β) not defined. We use an and assign -action for simplicity it doesn t add or remove expressive power, but moving creation to the expression language raises all kinds of other problems such as order of evaluation (and thus creation). Also for simplicity: no parameters to construction ( parameters of constructor). Adding them is straightforward (but somewhat tedious). 4/38

5 Create Transformer Example SM C : /...;n := new C;... s 1 s 2 create(c, expr, v) t create(c,expr,v) (σ, ε) =... σ: d : D n = :σ Sactlang ε: :ε 5/38

6 How To Choose New Identities? Re-use: choose any identity that is not alive now, i.e. not in dom(σ). Doesn t depend on history. May undangle dangling references may happen on some platforms. Fresh: choose any identity that has not been alive ever, i.e. not in dom(σ) and any predecessor in current run. Depends on history. Dangling references remain dangling could mask dirty effects of platform Sactlang 6/38

7 Sactlang Transformer: Create abstract syntax create(c, expr, v) concrete syntax intuitive semantics Create an object of class C and assign it to attribute v of the object denoted by expression expr. well-typedness expr : τ D, v atr(d), atr(c) = { v 1 : τ 1,expr 0 i 1 i n} semantics ((σ, ε), (σ, ε )) t iff σ = σ[u 0 σ(u 0 )[v u]] {u {v i d i 1 i n}}, ε = [u](ε); u (C) fresh, i.e. u dom(σ); u 0 = IÂexpr Ã(σ, β); d i = IÂexpr 0 i Ã(σ, β) if expr0 i and arbitrary value from (τ i ) otherwise; β = {this u x }. observables (error) conditions Obs create [u x ] = {(u x,, (, ), u)} IÂexpr Ã(σ) not defined. 7/38

8 Transformer: Destroy abstract syntax destroy(expr) intuitive semantics Destroy the object denoted by expression expr. well-typedness semantics observables (error) conditions expr : τ C, C... Obs destroy [u x ] = {(u x,, (+, ), u)} IÂexpr Ã(σ, β) not defined. concrete syntax Sactlang 8/38

9 Destroy Transformer Example SM C : /...;delete n;... s 1 s 2 destroy(expr) t destroy(expr) [u x ](σ, ε) =... σ: c : C n : C :σ Sactlang ε: :ε 9/38

10 What to Do With the Remaining Objects? Assume object u 0 is destroyed... object u 1 may still refer to it via association r: allow dangling references? or remove u 0 from σ(u 1 )(r)? object u 0 may have been the last one linking to object u 2 : leave u 2 alone? or remove u 2 also? Plus: (temporal extensions of) OCL may have dangling references Sactlang Our choice: Dangling references and no garbage collection! This is in line with expect the worst, because there are target platforms which don t provide garbage collection and models shall (in general) be correct without assumptions on target platform. But: the more dirty effects we see in the model, the more expensive it often is to analyse. Valid proposal for simple analysis: monotone frame semantics, no destruction at all. 10/38

11 Transformer: Destroy Sactlang abstract syntax destroy(expr) intuitive semantics Destroy the object denoted by expression expr. well-typedness semantics observables (error) conditions expr : τ C, C t[u x ](σ, ε) = (σ, ε) where σ = σ dom(σ)\{u} with u = IÂexpr Ã(σ, β). Obs destroy [u x ] = {(u x,, (+, ), u)} IÂexpr Ã(σ, β) not defined. concrete syntax 11/38

12 Sequential Composition of Transformers Sequential composition t 1 t 2 of transformers t 1 and t 2 is canonically defined as with observation (t 2 t 1 )[u x ](σ, ε) = t 2 [u x ](t 1 [u x ](σ, ε)) Obs (t2 t 1 )[u x ](σ, ε) = Obs t1 [u x ](σ, ε) Obs t2 [u x ](t 1 (σ, ε)). Clear: not defined if one the two intermediate micro steps is not defined Sactlang 12/38

13 Transformers And Denotational Semantics Observation: our transformers are in principle the denotational semantics of the actions/action sequences. The trivial case, to be precise. Note: with the previous examples, we can capture empty statements, skips, assignments, conditionals (by normalisation and auxiliary variables), create/destroy, but not possibly diverging loops Sactlang Our (Simple) Approach: if the action language is, e.g. Java, then (syntactically) forbid loops and calls of recursive functions. Other Approach: use full blown denotational semantics. No show-stopper, because loops in the action annotation can be converted into transition cycles in the state machine. 13/38

14 Step and Run-to-completion Step 14/ main

15 Transition Relation, Computation Sstmrtc Definition. Let A be a set of actions and S a (not necessarily finite) set of of states. We call a (labelled) transition relation. S A S Let S 0 S be a set of initial states. A sequence a s 0 a 0 1 a s1 2 s2... with s i S, a i A is called computation of the labelled transition system (S,, S 0 ) if and only if initiation: s 0 S 0 consecution: (s i, a i, s i+1 ) for i N 0. Note: for simplicity, we only consider infinite runs. 15/38

16 Active vs. Passive Classes/Objects Note: From now on, assume that all classes are active for simplicity. We ll later briefly discuss the Rhapsody framework which proposes a way how to integrate non-active objects. Note: The following RTC algorithm follows [Harel and Gery, 1997] (i.e. the one realised by the Rhapsody code generation) where the standard is ambiguous or leaves choices Sstmrtc 16/38

17 From Core State Machines to LTS Definition. Let Ë 0 = (Ì 0, 0, V 0,atr 0, ) be a signature with signals (all classes active), 0 a structure of Ë 0, and (Eth,ready,,, [ ]) an ether over Ë 0 and 0. Assume there is one core state machine M C per class C. We say, the state machines induce the following labelled transition relation on states S := (Σ ( 2: {#} Eth) with actions A := 2 ( ) ( ( ) { })Evs(, ) ( )) Ë (σ, ε) (cons,snd) (σ, ε ) u if and only if (i) an event with destination u is discarded, (ii) an event is dispatched to u, i.e. stable object processes an event, or (iii) run-to-completion processing by u commences, i.e. object u is not stable and continues to process an event, (iv) the environment interacts with object u, Sstmrtc s (cons, ) # if and only if (v) s = # and cons =, or an error condition occurs during consumption of cons. 17/38

18 (i) Discarding An Event if (σ, ε) (cons,snd) u (σ, ε ) an E-event (instance of signal E) is ready in ε for object u of a class, i.e. if Sstmrtc and u dom(σ) (C) u E ( ) : u E ready(ε,u) u is stable and in state machine state s, i.e. σ(u)(stable) = 1 and σ(u)(st) = s, but there is no corresponding transition enabled (all transitions incident with current state of u either have other triggers or the guard is not satisfied) (s, F,expr,act, s ) (SM C ) : F E IÂexpr Ã(σ) = 0 the system configuration doesn t change, i.e. σ = σ the event u E is removed from the ether, i.e. consumption of u E is observed, i.e. ε = ε u E, cons = {(u,(e,σ(u E )))},Snd =. 18/38

19 Example: Discard [x > 0]/x := x 1; n! J signal,env H SM C : G[x > 0]/x := y s 1 s 2 signal G, J H/z := y/x n 0,1 C x, z : Int y : Int env σ: c : C x = 1, z = 0, y = 2 st = s 1 stable = 1 ε: J for c, G for c Sstmrtc u dom(σ) (C) u E ( ) : u E ready(ε, u) (s, F,expr,act, s ) (SM C ) : F E IÂexpr Ã(σ) = 0 σ(u)(stable) = 1, σ(u)(st) = s, σ = σ, ε = ε u E cons = {(u, (E, σ(u E )))}, Snd = 19/38

20 (ii) Dispatch and (σ, ε) (cons,snd) u (σ, ε ) if u dom(σ) (C) u E ( ) : u E ready(ε, u) u is stable and in state machine state s, i.e. σ(u)(stable) = 1 and σ(u)(st) = s, a transition is enabled, i.e. (s, F,expr,act, s ) (SM C ) : F = E IÂexpr Ã( σ) = 1 where σ = σ[u.params E u E ]. (σ, ε ) results from applying t act to (σ,ε) and removing u E from the ether, i.e. (σ,ε ) = t act ( σ, ε u E ), Sstmrtc σ = (σ [u.st s, u.stable b, u.params E ]) ( )\{u E } where b depends: If u becomes stable in s, then b = 1. It does become stable if and only if there is no transition without trigger enabled for u in (σ,ε ). Otherwise b = 0. Consumption of u E and the side effects of the action are observed, i.e. cons = {(u,(e, σ(u E )))},Snd = Obs tact ( σ, ε u E ). 20/38

21 Example: Dispatch [x > 0]/x := x 1; n! J signal,env H SM C : G[x > 0]/x := y s 1 s 2 signal G, J H/z := y/x n 0,1 C x, z : Int y : Int env σ: c : C x = 1, z = 0, y = 2 st = s 1 stable = 1 ε: G for c Sstmrtc u dom(σ) (C) u E ( ) : u E ready(ε, u) (s, F,expr,act, s ) (SM C ) : F = E IÂexpr Ã( σ) = 1 σ = σ[u.params E u E ]. σ(u)(stable) = 1, σ(u)(st) = s, (σ, ε ) = t act ( σ, ε u E ) σ = (σ [u.st s, u.stable b, u.params E ]) ( )\{u E } cons = {(u, (E, σ(u E )))}, Snd = Obs tact ( σ, ε u E ) 21/38

22 (iii) Commence Run-to-Completion if (σ, ε) (cons,snd) u there is an unstable object u of a class, i.e. (σ, ε ) Sstmrtc and u dom(σ) (C) σ(u)(stable) = 0 there is a transition without trigger enabled from the current state s = σ(u)(st), i.e. (s,,expr,act,s ) (SM C ) : IÂexpr Ã(σ) = 1 (σ, ε ) results from applying t act to (σ, ε), i.e. (σ,ε ) t act [u](σ,ε), σ = σ [u.st s,u.stable b] where b depends as before. Only the side effects of the action are observed, i.e. cons =,Snd = Obs tact (σ, ε). 22/38

23 Example: Commence [x > 0]/x := x 1; n! J signal,env H SM C : G[x > 0]/x := y s 1 s 2 signal G, J H/z := y/x n 0,1 C x, z : Int y : Int env σ: c : C x = 2, z = 0, y = 2 st = s 2 stable = 0 ε: Sstmrtc u dom(σ) (C) : σ(u)(stable) = 0 (s,,expr,act, s ) (SM C ) : IÂexpr Ã(σ) = 1 σ(u)(stable) = 1, σ(u)(st) = s, (σ, ε ) = t act (σ, ε), σ = σ [u.st s, u.stable b] cons =, Snd = Obs tact (σ, ε) 23/38

24 (iv) Environment Interaction Assume that a set env is designated as environment events and a set of attributes v env V is designated as input attributes. Then if (σ, ε) (cons,snd) env (σ, ε ) an environment event E env is spontaneously sent to an alive object u (σ), i.e. σ = σ {u E {v i d i 1 i n}, ε = ε u E Sstmrtc or where u E / dom(σ) and atr(e) = {v 1,...,v n }. Sending of the event is observed, i.e. cons =, Snd = {(env, E( d))}. Values of input attributes change freely in alive objects, i.e. v V u dom(σ) : σ (u)(v) σ(u)(v) = v V env. and no objects appear or disappear, i.e. dom(σ ) = dom(σ). ε = ε. 24/38

25 Example: Environment [x > 0]/x := x 1; n! J signal,env H SM C : G[x > 0]/x := y s 1 s 2 signal G, J H/z := y/x n 0,1 C x, z : Int y : Int env σ: c : C x = 0, z = 0, y = 2 st = s 2 stable = 1 ε: Sstmrtc σ = σ {u E {v i d i 1 i n} ε = ε u E where u E / dom(σ) and atr(e) = {v 1,...,v n }. u dom(σ) cons =, Snd = {(env, E( d))}. 25/38

26 (v) Error Conditions if, in (ii) or (iii), and IÂexpr à is not defined for σ, or t act is not defined for (σ,ε), s (cons,snd) u consumption is observed according to (ii) or (iii), but Snd =. # Examples: E[x/0]/act s 2 s 1 s 3 E[true]/act Sstmrtc E[expr]/x := x/0 s 1 s 2 26/38

27 Example: Error Condition [x > 0]/x := x 1; n! J signal,env H SM C : G[x > 0]/x := y s 1 s 2 signal G, J H/z := y/x n 0,1 C x, z : Int y : Int env σ: c : C x = 0, z = 0, y = 27 st = s 2 stable = 1 ε: H for c Sstmrtc IÂexpr à not defined for σ, or t act is not defined for (σ, ε) consumption according to (ii) or (iii) Snd = 27/38

28 Notions of Steps: The Step Sstmstep Note: we call one evolution (σ, ε) (cons,snd) u Thus in our setting, a step directly corresponds to (σ, ε ) a step. one object (namely u) takes a single transition between regular states. (We have to extend the concept of single transition for hierarchical state machines.) That is: We re going for an interleaving semantics without true parallelism. Remark: With only methods (later), the notion of step is not so clear. For example, consider c 1 calls f() at c 2, which calls g() at c 1 which in turn calls h() for c 2. Is the completion of h() a step? Or the completion of f()? Or doesn t it play a role? It does play a role, because constraints/invariants are typically (= by convention) assumed to be evaluated at step boundaries, and sometimes the convention is meant to admit (temporary) violation in between steps. 28/38

29 Notions of Steps: The Run-to-Completion Step What is a run-to-completion step...? Intuition: a maximal sequence of steps, where the first step is a dispatch step and all later steps are commence steps. Note: one step corresponds to one transition in the state machine. A run-to-completion step is in general not syntacically definable one transition may be taken multiple times during an RTC-step. Example: E[x > 0]/ s 1 s 2 /x := x Sstmstep σ: ε: : C x = 2 E for u 29/38

30 Notions of Steps: The Run-to-Completion Step Cont d Proposal: Let (σ 0, ε 0 ) (cons 0,Snd 0 ) u 0... (cons n 1,Snd n 1) u n 1 (σ n, ε n ), n > 0, be a finite (!), non-empty, maximal, consecutive sequence such that object u is alive in σ 0, u 0 = u and (cons 0,Snd 0 ) indicates dispatching to u, i.e. cons = {(u, v d)}, there are no receptions by u in between, i.e. cons i {u} Evs(, ) =,i > 1, u n 1 = u and u is stable only in σ 0 and σ n, i.e. σ 0 (u)(stable) = σ n (u)(stable) = 1 and σ i (u)(stable) = 0 for 0 < i < n, Sstmstep Let 0 = k 1 < k 2 < < k N = n be the maximal sequence of indices such that u ki = u for 1 i N. Then we call the sequence (σ 0 (u) =) σ k1 (u), σ k2 (u)...,σ kn (u) (= σ n 1 (u)) a (!) run-to-completion computation of u (from (local) configuration σ 0 (u)). 30/38

31 Divergence We say, object u can diverge on reception cons from (local) configuration σ 0 (u) if and only if there is an infinite, consecutive sequence (σ 0, ε 0 ) (cons 0,Snd 0 ) (σ 1, ε 1 ) (cons 1,Snd 1 )... such that u doesn t become stable again. Note: disappearance of object not considered in the definitions. By the current definitions, it s neither divergence nor an RTC-step Sstmstep 31/38

32 Run-to-Completion Step: Discussion Sstmstep What people may dislike on our definition of RTC-step is that it takes a global and non-compositional view. That is: In the projection onto a single object we still see the effect of interaction with other objects. Adding classes (or even objects) may change the divergence behaviour of existing ones. Compositional would be: the behaviour of a set of objects is determined by the behaviour of each object in isolation. Our semantics and notion of RTC-step doesn t have this (often desired) property. Can we give (syntactical) criteria such that any global run-to-completion step is an interleaving of local ones? Maybe: Strict interfaces. (A): Refer to private features only via self. (Proof left as exercise...) (Recall that other objects of the same class can modify private attributes.) (B): Let objects only communicate by events, i.e. don t let them modify each other s local state via links at all. 32/38

33 Putting It All Together 33/ main

34 The Missing Piece: Initial States Recall: a labelled transition system is (S,, S 0 ). We have S: system configurations (σ, ε) : labelled transition relation (σ, ε) (cons,snd) u Wanted: initial states S 0. (σ, ε ). Proposal: Require a (finite) set of object diagrams OD as part of a UML model And set S 0 = {(σ, ε) σ G 1 (OD), OD Ç, ε empty}. (, ËÅ,Ç ) Stogether Other Approach: (used by Rhapsody tool) multiplicity of classes. We can read that as an abbreviation for an object diagram. 34/38

35 Semantics of UML Model So Far The semantics of the UML model where M = (, ËÅ,Ç ) some classes in are stereotyped as signal (standard), some signals and attributes are stereotyped as external (non-standard), there is a 1-to-1 relation between classes and state machines, Ç is a set of object diagrams over, is the transition system (S,, S 0 ) constructed on the previous slide Stogether The computations of M are the computations of (S,, S 0 ). 35/38

36 OCL Constraints and Behaviour Let M ( =, ËÅ,Ç ) be a UML model. We call M consistent iff, for each OCL constraint expr Inv( ), σ = expr for each reasonable point (σ, ε) of computations of M. (Cf. exercises and tutorial for discussion of reasonable point.) Note: we could define Inv(ËÅ) similar to Inv( ) Stogether Pragmatics: In UML-as-blueprint mode, if ËÅ doesn t exist yet, then M = (,, Ç ) is typically asking the developer to provide ËÅ such that M = (, ËÅ,Ç ) is consistent. If the developer makes a mistake, then M is inconsistent. Not common: if ËÅ is given, then constraints are also considered when choosing transitions in the RTC-algorithm. In other words: even in presence of mistakes, the ËÅ never move to inconsistent configurations. 36/38

37 References 37/ main

38 References main [Crane and Dingel, 2007] Crane, M. L. and Dingel, J. (2007). UML vs. classical vs. rhapsody statecharts: not all models are created equal. Software and Systems Modeling, 6(4): [Damm et al., 2003] Damm, W., Josko, B., Votintseva, A., and Pnueli, A. (2003). A formal semantics for a UML kernel language 1.2. IST/33522/WP 1.1/D1.1.2-Part1, Version 1.2. [Fecher and Schönborn, 2007] Fecher, H. and Schönborn, J. (2007). UML 2.0 state machines: Complete formal semantics via core state machines. In Brim, L., Haverkort, B. R., Leucker, M., and van de Pol, J., editors, FMICS/PDMC, volume 4346 of LNCS, pages Springer. [Harel and Gery, 1997] Harel, D. and Gery, E. (1997). Executable object modeling with statecharts. IEEE Computer, 30(7): [Harel and Kugler, 2004] Harel, D. and Kugler, H. (2004). The rhapsody semantics of statecharts. In Ehrig, H., Damm, W., Große-Rhode, M., Reif, W., Schnieder, E., and Westkämper, E., editors, Integration of Software Specification Techniques for Applications in Engineering, number 3147 in LNCS, pages Springer-Verlag. [OMG, 2007] OMG (2007). Unified modeling language: Superstructure, version Technical Report formal/ /38

Lecture 12: Core State Machines II

Lecture 12: Core State Machines II Software Design, Modelling and Analysis in UML Lecture 12: Core State Machines II 2015-12-15 12 2015-12-15 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

More information

Lecture 04: OCL Semantics

Lecture 04: OCL Semantics Software Design, Modelling and Analysis in UML Lecture 04: OCL Semantics 2014-10-30 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal 04 2014-10-30 main Albert-Ludwigs-Universität Freiburg, Germany Contents

More information

Lecture 2: Semantical Model

Lecture 2: Semantical Model Software Design, Modelling and Analysis in UML Lecture 2: Semantical Model 2016-10-20 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany 2 2016-10-20 main ->enable_water();

More information

Lecture 11: Timed Automata

Lecture 11: Timed Automata Real-Time Systems Lecture 11: Timed Automata 2014-07-01 11 2014-07-01 main Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents & Goals Last Lecture: DC (un)decidability This Lecture:

More information

Real-Time Systems. Lecture 10: Timed Automata Dr. Bernd Westphal. Albert-Ludwigs-Universität Freiburg, Germany main

Real-Time Systems. Lecture 10: Timed Automata Dr. Bernd Westphal. Albert-Ludwigs-Universität Freiburg, Germany main Real-Time Systems Lecture 10: Timed Automata 2013-06-04 10 2013-06-04 main Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents & Goals Last Lecture: PLC, PLC automata This Lecture:

More information

A Sample State Machine

A Sample State Machine A Sample State Machine Environment Signatures An environment signature is a triple of sets of guards, actions, and messages. H = (G H, A H, M H ) Guards: formulas in some logical language, e.g. OCL. Actions

More information

Lecture 4: OCL Semantics

Lecture 4: OCL Semantics Software Design, Modelling and Analysis in UML Lecture 4: OCL Semantics 2016-11-03 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany 4 2016-11-03 main Content

More information

Lecture 05: Duration Calculus III

Lecture 05: Duration Calculus III Real-Time Systems Lecture 05: Duration Calculus III 2014-05-20 Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents & Goals Last Lecture: DC Syntax and Semantics: Formulae This Lecture:

More information

How do PLC look like? What s special about PLC? What is a PLC? /50 2/50 5/50 6/50 3/ Splc main

How do PLC look like? What s special about PLC? What is a PLC? /50 2/50 5/50 6/50 3/ Splc main http://wikimedia.org (public domain) How do PLC look like? Albert-Ludwigs-Universität Freiburg, Germany Dr. Bernd Westphal 2013-05-29 Lecture 09: PLC Automata Real-ime Systems 4/50 http://wikimedia.org

More information

Real-Time Systems. Lecture 15: The Universality Problem for TBA Dr. Bernd Westphal. Albert-Ludwigs-Universität Freiburg, Germany

Real-Time Systems. Lecture 15: The Universality Problem for TBA Dr. Bernd Westphal. Albert-Ludwigs-Universität Freiburg, Germany Real-Time Systems Lecture 15: The Universality Problem for TBA 2013-06-26 15 2013-06-26 main Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents & Goals Last Lecture: Extended Timed

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Xiangyu Zhang The slides are compiled from Alex Aiken s Michael D. Ernst s Sorin Lerner s A Scary Outline Type-based analysis Data-flow analysis Abstract interpretation Theorem

More information

Research Report 326 ISBN ISSN

Research Report 326 ISBN ISSN University of Oslo Department of Informatics How to transform UML neg into a useful construct Ragnhild Kobro Runde, Øystein Haugen, Ketil Stølen Research Report 326 ISBN 82-7368-280-3 ISSN 0806-3036 November

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers

More information

Mathematical Foundations of Programming. Nicolai Kraus. Draft of February 15, 2018

Mathematical Foundations of Programming. Nicolai Kraus. Draft of February 15, 2018 Very short lecture notes: Mathematical Foundations of Programming University of Nottingham, Computer Science, module code G54FOP, Spring 2018 Nicolai Kraus Draft of February 15, 2018 What is this? This

More information

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types

More information

A call-by-name lambda-calculus machine

A call-by-name lambda-calculus machine A call-by-name lambda-calculus machine Jean-Louis Krivine University Paris VII, C.N.R.S. 2 place Jussieu 75251 Paris cedex 05 (krivine@pps.jussieu.fr) Introduction We present, in this paper, a particularly

More information

Semantics of UML state machines

Semantics of UML state machines 1 Otto-von-Guericke Universität Magdeburg, Germany May 27, 2015 A Sample State Machine stm ATM Behaviour Idle usercom.card(c) / cardid = c CardEntered usercom.pin(p) / pin = p PINEntered [trialsnum >=

More information

Lecture 03: Duration Calculus I

Lecture 03: Duration Calculus I Real-Time Systems Lecture 03: Duration Calculus I 2014-05-08 Dr. Bernd Westphal 03 2014-05-08 main Albert-Ludwigs-Universität Freiburg, Germany Contents & Goals Last Lecture: Model of timed behaviour:

More information

Fundamentals of Software Engineering

Fundamentals of Software Engineering Fundamentals of Software Engineering First-Order Logic Ina Schaefer Institute for Software Systems Engineering TU Braunschweig, Germany Slides by Wolfgang Ahrendt, Richard Bubel, Reiner Hähnle (Chalmers

More information

Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication

Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication Stavros Tripakis Abstract We introduce problems of decentralized control with communication, where we explicitly

More information

Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events

Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events Massimo Franceschet Angelo Montanari Dipartimento di Matematica e Informatica, Università di Udine Via delle

More information

Theoretical Foundations of the UML Lecture 18: Statecharts Semantics (1)

Theoretical Foundations of the UML Lecture 18: Statecharts Semantics (1) Theoretical Foundations of the UML Lecture 18: Statecharts Semantics (1) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ws-1415/uml/

More information

Formal Conformance Testing 2006

Formal Conformance Testing 2006 Formal Conformance Testing 2006 Lecture 1 14th Sep 2006 Welcome! This is T-79.5304: Formal Conformance Testing Lectures from 10 to 12 am, no regular tutorials Cancellations and other notes at the web page

More information

Introduction to Turing Machines. Reading: Chapters 8 & 9

Introduction to Turing Machines. Reading: Chapters 8 & 9 Introduction to Turing Machines Reading: Chapters 8 & 9 1 Turing Machines (TM) Generalize the class of CFLs: Recursively Enumerable Languages Recursive Languages Context-Free Languages Regular Languages

More information

Timed Automata. Chapter Clocks and clock constraints Clock variables and clock constraints

Timed Automata. Chapter Clocks and clock constraints Clock variables and clock constraints Chapter 10 Timed Automata In the previous chapter, we have discussed a temporal logic where time was a discrete entities. A time unit was one application of the transition relation of an LTS. We could

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 20: Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg January 15, 2013 Jochen Hoenicke (Software Engineering) Formal Methods for Java

More information

T Reactive Systems: Temporal Logic LTL

T Reactive Systems: Temporal Logic LTL Tik-79.186 Reactive Systems 1 T-79.186 Reactive Systems: Temporal Logic LTL Spring 2005, Lecture 4 January 31, 2005 Tik-79.186 Reactive Systems 2 Temporal Logics Temporal logics are currently the most

More information

The State Explosion Problem

The State Explosion Problem The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis

More information

Lecture: Workload Models (Advanced Topic)

Lecture: Workload Models (Advanced Topic) Lecture: Workload Models (Advanced Topic) Real-Time Systems, HT11 Martin Stigge 28. September 2011 Martin Stigge Workload Models 28. September 2011 1 System

More information

CSE 505, Fall 2009, Midterm Examination 5 November Please do not turn the page until everyone is ready.

CSE 505, Fall 2009, Midterm Examination 5 November Please do not turn the page until everyone is ready. CSE 505, Fall 2009, Midterm Examination 5 November 2009 Please do not turn the page until everyone is ready Rules: The exam is closed-book, closed-note, except for one side of one 85x11in piece of paper

More information

Discrete Dynamics Finite State Machines גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Discrete Dynamics Finite State Machines גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון Discrete Dynamics Finite State Machines גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Recap: Actor Model An actor is a mapping of input signals to output signals S: R R k R R m where k is the number

More information

Online Learning, Mistake Bounds, Perceptron Algorithm

Online Learning, Mistake Bounds, Perceptron Algorithm Online Learning, Mistake Bounds, Perceptron Algorithm 1 Online Learning So far the focus of the course has been on batch learning, where algorithms are presented with a sample of training data, from which

More information

Foundations of System Development

Foundations of System Development Foundations of System Development Martin Wirsing in cooperation with Axel Rauschmayer WS 05/06 Ausblick: Systematische Entwicklung Mobiler Systeme 2 Goals Modelling and Developing Systems Using UML and

More information

Interactive Verification of Concurrent Systems using Symbolic Execution

Interactive Verification of Concurrent Systems using Symbolic Execution Interactive Verification of Concurrent Systems using Symbolic Execution Michael Balser, Simon Bäumler, Wolfgang Reif, and Gerhard Schellhorn University of Augsburg, Germany Abstract This paper presents

More information

CS522 - Programming Language Semantics

CS522 - Programming Language Semantics 1 CS522 - Programming Language Semantics Simply Typed Lambda Calculus Grigore Roşu Department of Computer Science University of Illinois at Urbana-Champaign 2 We now discuss a non-trivial extension of

More information

Theoretical Foundations of the UML

Theoretical Foundations of the UML Theoretical Foundations of the UML Lecture 17+18: A Logic for MSCs Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group moves.rwth-aachen.de/teaching/ws-1718/fuml/ 5.

More information

Logic Model Checking

Logic Model Checking Logic Model Checking Lecture Notes 10:18 Caltech 101b.2 January-March 2004 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN 0-321-22862-6, 608 pgs. the assignment

More information

Alan Bundy. Automated Reasoning LTL Model Checking

Alan Bundy. Automated Reasoning LTL Model Checking Automated Reasoning LTL Model Checking Alan Bundy Lecture 9, page 1 Introduction So far we have looked at theorem proving Powerful, especially where good sets of rewrite rules or decision procedures have

More information

CS411 Notes 3 Induction and Recursion

CS411 Notes 3 Induction and Recursion CS411 Notes 3 Induction and Recursion A. Demers 5 Feb 2001 These notes present inductive techniques for defining sets and subsets, for defining functions over sets, and for proving that a property holds

More information

Software Engineering using Formal Methods

Software Engineering using Formal Methods Software Engineering using Formal Methods First-Order Logic Wolfgang Ahrendt 26th September 2013 SEFM: First-Order Logic 130926 1 / 53 Install the KeY-Tool... KeY used in Friday s exercise Requires: Java

More information

Limitations of OCAML records

Limitations of OCAML records Limitations of OCAML records The record types must be declared before they are used; a label e can belong to only one record type (otherwise fun x x.e) would have several incompatible types; we cannot

More information

Reasoning About Imperative Programs. COS 441 Slides 10b

Reasoning About Imperative Programs. COS 441 Slides 10b Reasoning About Imperative Programs COS 441 Slides 10b Last time Hoare Logic: { P } C { Q } Agenda If P is true in the initial state s. And C in state s evaluates to s. Then Q must be true in s. Program

More information

LTL Model Checking. Wishnu Prasetya.

LTL Model Checking. Wishnu Prasetya. LTL Model Checking Wishnu Prasetya wishnu@cs.uu.nl www.cs.uu.nl/docs/vakken/pv Overview This pack : Abstract model of programs Temporal properties Verification (via model checking) algorithm Concurrency

More information

Linking Duration Calculus and TLA

Linking Duration Calculus and TLA Linking Duration Calculus and TLA Yifeng Chen and Zhiming Liu Department of Computer Science, University of Leicester, Leicester LE1 7RH, UK Email: {Y.Chen, Z.Liu}@mcs.le.ac.uk Abstract. Different temporal

More information

Lecture 05: High-Level Design with SysML. An Introduction to SysML. Where are we? What is a model? The Unified Modeling Language (UML)

Lecture 05: High-Level Design with SysML. An Introduction to SysML. Where are we? What is a model? The Unified Modeling Language (UML) Where are we? Systeme hoher Sicherheit und Qualität Universität Bremen, WS 2017/2018 Lecture 05: High-Level Design with SysML Christoph Lüth, Dieter Hutter, Jan Peleska 01: Concepts of Quality 02: Legal

More information

Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events

Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events Pairing Transitive Closure and Reduction to Efficiently Reason about Partially Ordered Events Massimo Franceschet Angelo Montanari Dipartimento di Matematica e Informatica, Università di Udine Via delle

More information

Relevant sections from AMATH 351 Course Notes (Wainwright): 1.3 Relevant sections from AMATH 351 Course Notes (Poulin and Ingalls): 1.1.

Relevant sections from AMATH 351 Course Notes (Wainwright): 1.3 Relevant sections from AMATH 351 Course Notes (Poulin and Ingalls): 1.1. Lecture 8 Qualitative Behaviour of Solutions to ODEs Relevant sections from AMATH 351 Course Notes (Wainwright): 1.3 Relevant sections from AMATH 351 Course Notes (Poulin and Ingalls): 1.1.1 The last few

More information

Denoting computation

Denoting computation A jog from Scott Domains to Hypercoherence Spaces 13/12/2006 Outline Motivation 1 Motivation 2 What Does Denotational Semantic Mean? Trivial examples Basic things to know 3 Scott domains di-domains 4 Event

More information

Applied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw

Applied Logic. Lecture 1 - Propositional logic. Marcin Szczuka. Institute of Informatics, The University of Warsaw Applied Logic Lecture 1 - Propositional logic Marcin Szczuka Institute of Informatics, The University of Warsaw Monographic lecture, Spring semester 2017/2018 Marcin Szczuka (MIMUW) Applied Logic 2018

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 August 28, 2003 These supplementary notes review the notion of an inductive definition and give

More information

CMSC 451: Lecture 7 Greedy Algorithms for Scheduling Tuesday, Sep 19, 2017

CMSC 451: Lecture 7 Greedy Algorithms for Scheduling Tuesday, Sep 19, 2017 CMSC CMSC : Lecture Greedy Algorithms for Scheduling Tuesday, Sep 9, 0 Reading: Sects.. and. of KT. (Not covered in DPV.) Interval Scheduling: We continue our discussion of greedy algorithms with a number

More information

CS 6110 Lecture 21 The Fixed-Point Theorem 8 March 2013 Lecturer: Andrew Myers. 1 Complete partial orders (CPOs) 2 Least fixed points of functions

CS 6110 Lecture 21 The Fixed-Point Theorem 8 March 2013 Lecturer: Andrew Myers. 1 Complete partial orders (CPOs) 2 Least fixed points of functions CS 6110 Lecture 21 The Fixed-Point Theorem 8 March 2013 Lecturer: Andrew Myers We saw that the semantics of the while command are a fixed point. We also saw that intuitively, the semantics are the limit

More information

Programming Language Concepts, CS2104 Lecture 3

Programming Language Concepts, CS2104 Lecture 3 Programming Language Concepts, CS2104 Lecture 3 Statements, Kernel Language, Abstract Machine 31 Aug 2007 CS2104, Lecture 3 1 Reminder of last lecture Programming language definition: syntax, semantics

More information

Real-Time and Embedded Systems (M) Lecture 5

Real-Time and Embedded Systems (M) Lecture 5 Priority-driven Scheduling of Periodic Tasks (1) Real-Time and Embedded Systems (M) Lecture 5 Lecture Outline Assumptions Fixed-priority algorithms Rate monotonic Deadline monotonic Dynamic-priority algorithms

More information

Design of Distributed Systems Melinda Tóth, Zoltán Horváth

Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Publication date 2014 Copyright 2014 Melinda Tóth, Zoltán Horváth Supported by TÁMOP-412A/1-11/1-2011-0052

More information

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions Chapter 1 Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions 1.1 The IMP Language IMP is a programming language with an extensible syntax that was developed in the late 1960s. We will

More information

Timo Latvala. February 4, 2004

Timo Latvala. February 4, 2004 Reactive Systems: Temporal Logic LT L Timo Latvala February 4, 2004 Reactive Systems: Temporal Logic LT L 8-1 Temporal Logics Temporal logics are currently the most widely used specification formalism

More information

Safety and Liveness Properties

Safety and Liveness Properties Safety and Liveness Properties Lecture #6 of Model Checking Joost-Pieter Katoen Lehrstuhl 2: Software Modeling and Verification E-mail: katoen@cs.rwth-aachen.de November 5, 2008 c JPK Overview Lecture

More information

Trace semantics: towards a unification of parallel paradigms Stephen Brookes. Department of Computer Science Carnegie Mellon University

Trace semantics: towards a unification of parallel paradigms Stephen Brookes. Department of Computer Science Carnegie Mellon University Trace semantics: towards a unification of parallel paradigms Stephen Brookes Department of Computer Science Carnegie Mellon University MFCSIT 2002 1 PARALLEL PARADIGMS State-based Shared-memory global

More information

INTEGRATED SPECIFICATION, VALIDATION AND VERIFI- CATION WITH HYBRIDUML AND OCL APPLIED TO THE BART CASE STUDY

INTEGRATED SPECIFICATION, VALIDATION AND VERIFI- CATION WITH HYBRIDUML AND OCL APPLIED TO THE BART CASE STUDY INTEGRATED SPECIFICATION, VALIDATION AND VERIFI- CATION WITH HYBRIDUML AND OCL APPLIED TO THE BART CASE STUDY Stefan Bisanz, Paul Ziemann, Arne Lindow University of Bremen, FB3 (Department of Mathematics

More information

Lecture Notes on Software Model Checking

Lecture Notes on Software Model Checking 15-414: Bug Catching: Automated Program Verification Lecture Notes on Software Model Checking Matt Fredrikson André Platzer Carnegie Mellon University Lecture 19 1 Introduction So far we ve focused on

More information

G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV

G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV G54FOP: Lecture 17 & 18 Denotational Semantics and Domain Theory III & IV Henrik Nilsson University of Nottingham, UK G54FOP: Lecture 17 & 18 p.1/33 These Two Lectures Revisit attempt to define denotational

More information

A Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32

A Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32 A Note on Scope and Infinite Behaviour in CCS-like Calculi GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Joint work with Pablo Giambiagi and Frank Valencia A

More information

CS21 Decidability and Tractability

CS21 Decidability and Tractability CS21 Decidability and Tractability Lecture 3 January 9, 2017 January 9, 2017 CS21 Lecture 3 1 Outline NFA, FA equivalence Regular Expressions FA and Regular Expressions January 9, 2017 CS21 Lecture 3 2

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 September 2, 2004 These supplementary notes review the notion of an inductive definition and

More information

It is a growing concern for companies, administrations,

It is a growing concern for companies, administrations, IEEE TRANSACTIONS ON SOFTWARE ENGINEERING (preprint) 1 Monitoring Data Usage in Distributed Systems David Basin, Matúš Harvan, Felix Klaedtke, and Eugen Zălinescu Abstract IT systems manage increasing

More information

Nondeterministic finite automata

Nondeterministic finite automata Lecture 3 Nondeterministic finite automata This lecture is focused on the nondeterministic finite automata (NFA) model and its relationship to the DFA model. Nondeterminism is an important concept in the

More information

On Fixed Point Equations over Commutative Semirings

On Fixed Point Equations over Commutative Semirings On Fixed Point Equations over Commutative Semirings Javier Esparza, Stefan Kiefer, and Michael Luttenberger Universität Stuttgart Institute for Formal Methods in Computer Science Stuttgart, Germany {esparza,kiefersn,luttenml}@informatik.uni-stuttgart.de

More information

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready.

CSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready. CSE 505, Fall 2005, Midterm Examination 8 November 2005 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.

More information

Nonmonotonic Reasoning in Description Logic by Tableaux Algorithm with Blocking

Nonmonotonic Reasoning in Description Logic by Tableaux Algorithm with Blocking Nonmonotonic Reasoning in Description Logic by Tableaux Algorithm with Blocking Jaromír Malenko and Petr Štěpánek Charles University, Malostranske namesti 25, 11800 Prague, Czech Republic, Jaromir.Malenko@mff.cuni.cz,

More information

Tree Automata and Rewriting

Tree Automata and Rewriting and Rewriting Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.jussieu.fr July 23, 2010 What are? Definition Tree Automaton A tree automaton

More information

2 Computable and Computably Enumerable Sets

2 Computable and Computably Enumerable Sets Notes For CMSC 650- COMPUTABILITY by A.Amir and W.I. Gasarch 1 Introduction We take our model of computation to be Java Programs. Traditionally one defines Turing Machines and we will use that terminology,

More information

Canonical Calculi: Invertibility, Axiom expansion and (Non)-determinism

Canonical Calculi: Invertibility, Axiom expansion and (Non)-determinism Canonical Calculi: Invertibility, Axiom expansion and (Non)-determinism A. Avron 1, A. Ciabattoni 2, and A. Zamansky 1 1 Tel-Aviv University 2 Vienna University of Technology Abstract. We apply the semantic

More information

Further discussion of Turing machines

Further discussion of Turing machines Further discussion of Turing machines In this lecture we will discuss various aspects of decidable and Turing-recognizable languages that were not mentioned in previous lectures. In particular, we will

More information

Bringing class diagrams to life

Bringing class diagrams to life Bringing class diagrams to life Luis S. Barbosa & Sun Meng DI-CCTC, Minho University, Braga & CWI, Amsterdam UML & FM Workshop 2009 Rio de Janeiro 8 December, 2009 Formal Methods proofs problems structures

More information

Multicore Semantics and Programming

Multicore Semantics and Programming Multicore Semantics and Programming Peter Sewell Tim Harris University of Cambridge Oracle October November, 2015 p. 1 These Lectures Part 1: Multicore Semantics: the concurrency of multiprocessors and

More information

MOST OF the published research on control of discreteevent

MOST OF the published research on control of discreteevent IEEE TRANSACTIONS ON AUTOMATIC CONTROL, VOL. 43, NO. 1, JANUARY 1998 3 Discrete-Event Control of Nondeterministic Systems Michael Heymann and Feng Lin, Member, IEEE Abstract Nondeterminism in discrete-event

More information

Jan A. Bergstra and Alban Ponse. Informatics Institute, section Theory of Computer Science University of Amsterdam

Jan A. Bergstra and Alban Ponse. Informatics Institute, section Theory of Computer Science University of Amsterdam Datatype defining rewrite systems for the ring of integers, and for natural and integer arithmetic in unary view arxiv:1608.06212v1 [cs.lo] 22 Aug 2016 Jan A. Bergstra and Alban Ponse Informatics Institute,

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 12: Soundness of Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg June 12, 2017 Jochen Hoenicke (Software Engineering) Formal Methods

More information

Combining Propositional Dynamic Logic with Formal Concept Analysis

Combining Propositional Dynamic Logic with Formal Concept Analysis Proc. CS&P '06 Combining Propositional Dynamic Logic with Formal Concept Analysis (extended abstract) N.V. Shilov, N.O. Garanina, and I.S. Anureev A.P. Ershov Institute of Informatics Systems, Lavren ev

More information

Convergence in shape of Steiner symmetrized line segments. Arthur Korneychuk

Convergence in shape of Steiner symmetrized line segments. Arthur Korneychuk Convergence in shape of Steiner symmetrized line segments by Arthur Korneychuk A thesis submitted in conformity with the requirements for the degree of Master of Science Graduate Department of Mathematics

More information

Lecture 10: Live Sequence Charts Cont d

Lecture 10: Live Sequence Charts Cont d Softwaretechnik / Software-Engineering Lecture 10: Live Sequence Charts Cont d 2015-06-15 10 2015-06-15 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

More information

Supplementary Notes on Inductive Definitions

Supplementary Notes on Inductive Definitions Supplementary Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 August 29, 2002 These supplementary notes review the notion of an inductive definition

More information

Tree sets. Reinhard Diestel

Tree sets. Reinhard Diestel 1 Tree sets Reinhard Diestel Abstract We study an abstract notion of tree structure which generalizes treedecompositions of graphs and matroids. Unlike tree-decompositions, which are too closely linked

More information

Theory of Computation

Theory of Computation Thomas Zeugmann Hokkaido University Laboratory for Algorithmics http://www-alg.ist.hokudai.ac.jp/ thomas/toc/ Lecture 12: Turing Machines Turing Machines I After having dealt with partial recursive functions,

More information

Temporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct.

Temporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct. EE 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2016 Temporal logic Stavros Tripakis University of California, Berkeley Stavros Tripakis (UC Berkeley) EE 244, Fall 2016

More information

First Order Logic: Syntax and Semantics

First Order Logic: Syntax and Semantics irst Order Logic: Syntax and Semantics COMP30412 Sean Bechhofer sean.bechhofer@manchester.ac.uk Logic Recap You should already know the basics of irst Order Logic (OL) It s a prerequisite of this course!

More information

On Real-time Monitoring with Imprecise Timestamps

On Real-time Monitoring with Imprecise Timestamps On Real-time Monitoring with Imprecise Timestamps David Basin 1, Felix Klaedtke 2, Srdjan Marinovic 1, and Eugen Zălinescu 1 1 Institute of Information Security, ETH Zurich, Switzerland 2 NEC Europe Ltd.,

More information

A logical framework to deal with variability

A logical framework to deal with variability A logical framework to deal with variability (research in progress) M.H. ter Beek joint work with P. Asirelli, A. Fantechi and S. Gnesi ISTI CNR Università di Firenze XXL project meeting Pisa, 21 June

More information

Axioms of Kleene Algebra

Axioms of Kleene Algebra Introduction to Kleene Algebra Lecture 2 CS786 Spring 2004 January 28, 2004 Axioms of Kleene Algebra In this lecture we give the formal definition of a Kleene algebra and derive some basic consequences.

More information

Lecture 9: Live Sequence Charts

Lecture 9: Live Sequence Charts Softwaretechnik / Software-Engineering Lecture 9: Live Sequence Charts 2017-06-19 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany 9 2017-06-19 main Topic Area

More information

Principles of Program Analysis: A Sampler of Approaches

Principles of Program Analysis: A Sampler of Approaches Principles of Program Analysis: A Sampler of Approaches Transparencies based on Chapter 1 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis Springer Verlag

More information

Embedded systems specification and design

Embedded systems specification and design Embedded systems specification and design David Kendall David Kendall Embedded systems specification and design 1 / 21 Introduction Finite state machines (FSM) FSMs and Labelled Transition Systems FSMs

More information

CS422 - Programming Language Design

CS422 - Programming Language Design 1 CS422 - Programming Language Design Denotational Semantics Grigore Roşu Department of Computer Science University of Illinois at Urbana-Champaign 2 Denotational semantics, also known as fix-point semantics,

More information

Econ Slides from Lecture 1

Econ Slides from Lecture 1 Econ 205 Sobel Econ 205 - Slides from Lecture 1 Joel Sobel August 23, 2010 Warning I can t start without assuming that something is common knowledge. You can find basic definitions of Sets and Set Operations

More information

TESTING is one of the most important parts of the

TESTING is one of the most important parts of the IEEE TRANSACTIONS 1 Generating Complete Controllable Test Suites for Distributed Testing Robert M. Hierons, Senior Member, IEEE Abstract A test suite is m-complete for finite state machine (FSM) M if it

More information

Software Engineering

Software Engineering Software Engineering Lecture 07: Design by Contract Peter Thiemann University of Freiburg, Germany 02.06.2014 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

More information

Nested Epistemic Logic Programs

Nested Epistemic Logic Programs Nested Epistemic Logic Programs Kewen Wang 1 and Yan Zhang 2 1 Griffith University, Australia k.wang@griffith.edu.au 2 University of Western Sydney yan@cit.uws.edu.au Abstract. Nested logic programs and

More information

Lecture Notes on Data Abstraction

Lecture Notes on Data Abstraction Lecture Notes on Data Abstraction 15-814: Types and Programming Languages Frank Pfenning Lecture 14 October 23, 2018 1 Introduction Since we have moved from the pure λ-calculus to functional programming

More information

Marketing Impact on Diffusion in Social Networks

Marketing Impact on Diffusion in Social Networks Marketing Impact on Diffusion in Social Networks Pavel Naumov Vassar College, Poughkeepsie, New York, USA Jia Tao The College of New Jersey, Ewing, New Jersey, USA Abstract The article proposes a way to

More information