1 Semantics Q1 2007 S EMANTICS (Q1,’07) Week 6 Jacob Andersen PhD student

Slides:



Advertisements
Similar presentations
Process Algebra Book: Chapter 8. The Main Issue Q: When are two models equivalent? A: When they satisfy different properties. Q: Does this mean that the.
Advertisements

Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer.
Possible World Semantics for Modal Logic
Jacob Andersen PhD student
April 2009 CCS T OOLS Keywords: - Concurrency Workbench - CCS visualizer and simulator - The Bisimulation Game Game.
Process Algebra (2IF45) Abstraction in Process Algebra Suzana Andova.
Lecture 7 Surreal Numbers. Lecture 7 Surreal Numbers.
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
Event structures Mauro Piccolo. Interleaving Models Trace Languages:  computation described through a non-deterministic choice between all sequential.
CSCI 4325 / 6339 Theory of Computation Zhixiang Chen Department of Computer Science University of Texas-Pan American.
Section 7.4: Closures of Relations Let R be a relation on a set A. We have talked about 6 properties that a relation on a set may or may not possess: reflexive,
Process Algebra (2IF45) Probabilistic Process Algebra Suzana Andova.
Behavioral Equivalence Hossein Hojjat Formal Lab University of Tehran.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Introduction to Computability Theory
School of Computing and Mathematics, University of Huddersfield CAS2545: WEEK 11 LECTURE: n The meaning of Algebraic Specifications TUTORIAL/PRACTICAL:
Transparency No. 2-1 Formal Language and Automata Theory Chapter 2 Deterministic Finite Automata (DFA) (include Lecture 3 and 4)
Transparency No Formal Language and Automata Theory Chapter 10 The Myhill-Nerode Theorem (lecture 15,16 and B)
Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (more on Section 1.4) David Martin This work is licensed under.
C LAUS B RABRAND S EMANTICS (Q1,’06) O CT 12, 2006 C LAUS B RABRAND © , University of Aarhus [ ] [
C LAUS B RABRAND S EMANTICS (Q1,’06) O CT 06, 2006 C LAUS B RABRAND © , University of Aarhus [ ] [
Regular Expression (EXTRA)
C LAUS B RABRAND C ONCURRENCY (Q3,’06) M AR 13, 2006 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
C LAUS B RABRAND © S EMANTICS (Q1,’06) A UG 31, 2006 C LAUS B RABRAND © 2005–2006, University of Aarhus [ ] [
Transparency No Formal Language and Automata Theory Chapter 10 The Myhill-Nerode Theorem (lecture 15,16 and B)
C LAUS B RABRAND S EMANTICS (Q1,’05) S EP 29, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
C LAUS B RABRAND S EMANTICS (Q1,’05) O CT 06, 2005 C LAUS B RABRAND © 2005, University of Aarhus [ ] [
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
1 Semantics Q S EMANTICS (Q1,’07) Week 4 Jacob Andersen PhD student
CS5371 Theory of Computation Lecture 4: Automata Theory II (DFA = NFA, Regular Language)
Process Algebra (2IF45) Basic Process Algebra (Soundness proof) Dr. Suzana Andova.
Formal Language Finite set of alphabets Σ: e.g., {0, 1}, {a, b, c}, { ‘{‘, ‘}’ } Language L is a subset of strings on Σ, e.g., {00, 110, 01} a finite language,
Process Algebra (2IF45) Probabilistic Branching Bisimulation: Exercises Dr. Suzana Andova.
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
Mathematical Operational Semantics and Finitary System Behaviour Stefan Milius, Marcello Bonsangue, Robert Myers, Jurriaan Rot.
Advanced Topics in SE Spring Process Algebra Hossein Hojjat Formal Methods Lab University of Tehran.
Communication and Concurrency: CCS
Reactive systems – general
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Operational Semantics And Process Algebra Mads Dam Reading: Peled 8.3, 8.4, 8.6 – rest of ch. 8.
1 Bisimulations as a Technique for State Space Reductions.
11/19/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof.Anna Labella.
Formal Methods for Software Engineering Part II: Modelling & Analysis of System Behaviour.
MPRI 3 Dec 2007Catuscia Palamidessi 1 Why Probability and Nondeterminism? Concurrency Theory Nondeterminism –Scheduling within parallel composition –Unknown.
Weak Bisimilarity Coalgebraically Andrei Popescu Department of Computer Science University of Illinois.
CS 5204 Spring 99 1 A Simple Agent A CCS agent is described both by a structural diagram and one or more algebraic equations. The diagram is for readability.
1 Lecture 2 Equivalence Relations Reading: Epp Chp 10.3.
 2005 SDU Lecture13 Reducibility — A methodology for proving un- decidability.
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Processes and Equivalences Mads Dam Reading: Peled 8.5.
2G1516/2G1521 Formal Methods2004 Mads Dam IMIT, KTH 1 CCS: Processes and Equivalences Mads Dam Reading: Peled 8.1, 8.2, 8.5.
CS 203: Introduction to Formal Languages and Automata
Concurrency 5 The theory of CCS Specifications and Verification Expressive Power Catuscia Palamidessi
Transparency No. 4-1 Formal Language and Automata Theory Chapter 4 Patterns, Regular Expressions and Finite Automata (include lecture 7,8,9) Transparency.
Process Algebra (2IF45) Basic Process Algebra Dr. Suzana Andova.
Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
7/7/20161 Formal Methods in software development a.a.2015/2016 Prof.Anna Labella.
Prof. Dr. Holger Schlingloff 1,2 Dr. Esteban Pavese 1
CSE 105 theory of computation
CSE 105 theory of computation
Hierarchy of languages
Alternating tree Automata and Parity games
Formal Methods in software development
CS21 Decidability and Tractability
Formal Methods in software development
CSE 105 theory of computation
CHAPTER 1 Regular Languages
Interactive computability
CSE 105 theory of computation
Presentation transcript:

1 Semantics Q S EMANTICS (Q1,’07) Week 6 Jacob Andersen PhD student

2 Semantics Q Week 6 - Outline A Tale of Two Coca-Cola Dispensers About Equivalences Strong + Weak Bisimulation Bisimulation Games CCS Tools

3 Semantics Q CCS Syntax CCS Syntax: “0”// inaction “ .P ”// action prefix,   Act “ P+P ”// non-deterministic choice “ P|P ”// parallel composition “ P\L ”// restriction (private name), L ⊆ L “ P[f] ”// action relabelling “ K ”// process variable, K  K P ::= 0 | .P | P+P | P|P | P\L | P[f] | K K 1 = P 1, K 2 = P 2, … def  a: f(a) = f(a)  f(  ) =  f:Act  Act … where Note: restrictions on f

4 Semantics Q SOS for CCS Structural Operational Semantics: Q: why  (tau) in communication “ P|Q ” (instead of propagating a or a ) ?  ~ “the unobservable hand-shake” [ RES ] [ REL ] [ COM 1 ] [ COM 2 ] [ COM 3 ] [ ACT ] [ SUM j ][ CON ]

5 Semantics Q A T ALE OF TWO C OCA -C OLA D ISPENSERS

6 Semantics Q Once upon a time... Dispenser: Dispenser’: ’ ’ Would you consider them equal ‘=’ ? coin. (coke + sprite) coin.coke + coin.sprite Would you consider them equivalent ‘  ’ ? What does it at all mean for them to be equivalent ‘  ’ ?!?

7 Semantics Q Equal vs. Equivalent Equal (concrete identity): 3 = 3 Equivalent (abstract): 3   0x03 16  \003 8   three 3  3   let n=2 in n*(n-1)+(n-2)  i i i=0 2 more abstract

8 Semantics Q Trace Equivalence Definition: Trace Equivalence: Two processes P and Q are trace equivalent “  tr ” iff: »They can produce the same traces: » Example: Traces( ) = { , coin, coin;coke, coin;sprite } Traces( ) = { , coin, coin;coke, coin;sprite } coin. (coke + sprite) coin.coke + coin.sprite ’ ’ ’ ’  tr Hence: Traces(P) = {  Act* |  Q : P  * Q } 

9 Semantics Q Contextual Composition…? Recall: "Coke-only-drinker": Contextual composition: coin. (coke + sprite) coin.coke + coin.sprite ’ ’ ’ ’  tr What the.. !? coin. coke. drink The coke drinker is certainly able to to distinguish the two dispensers !! Idea (can we…?): put the two dispensers in a context where they can be differentiated ! problematic equality(!) Trace equivalence cannot distinguish the two dispensers.

10 Semantics Q A BOUT E QUIVALENCES

11 Semantics Q Purpose of equivalences Recall examples from the homepage: Specification and (model of) program equivalent ? Two (models of) programs equivalent ?

12 Semantics Q CCS: “Single-Language Formalism” CCS is a so-called “Single-lang. formalism”; i.e. one may specify both: »implementation( ) »and specification( ) We would like to check via some (reasonable) equivalence, R, that: “The implementation has the intended behavior”: » R the spec. and impl. are “equivalent” IMPL = def... SPEC = def... IMPL SPEC

13 Semantics Q Equivalence “wish list” …so we would like: reflexitivity : »SYS R SYS (same behavior as itself) ! transitivity (for stepwise modelling/refinement) !!! : »S 0 R S 1 R... R S n R IMPL => S 0 R IMPL symmetry (just a nice property to have): »S R S’  S’ R S

14 Semantics Q Def: Equivalence Relation Let R be a binary relation over set A: R  A  A R is an equivalence relation iff: Reflexive: » Symmetric: » Transitive: »  x  A: x R x  x,y  A: x R y  y R x  x,y,z  A: x R y  y R z  x R z Q: is trace equivalence “  tr ” an equivalence relation ? Yes

15 Semantics Q Equivalence “wish list” (cont’d)… Furthermore, we would like these properties: P+Q R Q+P // ‘ + ’ commutative (P+Q)+R R P+(Q+R) // ‘ + ’ associative P|Q R Q|P // ‘ | ’ commutative (P|Q)|R R P|(Q|R) // ‘ | ’ associative 0+P R P // ‘ 0 ’ is neutral wrt. ‘+’ 0|P R P // ‘ 0 ’ is neutral wrt. ‘ | ’... Trace equivalence ‘  tr ’ ? Yes

16 Semantics Q …and (congruence wrt. CCS) Definition: “ R ” congruence (wrt. CCS): P R Q  C[P] R C[Q], for all contexts C[] »“relation is preserved under contextual substitution” A context = a process with a gap: Examples: P R Q  P+R R Q+R P R Q  P|S R Q|S P R Q  a.P R a.Q P R Q  ((a.P|R)+S)\x R ((a.Q|R)+S)\x C : .[] | []+P | P+[] | []|P | P|[] | [][f] | []\a []+R []|S a.[] Congruence ‘  tr ’ ?

17 Semantics Q Congruence (cont’d) Trace equivalence, ‘  tr ’, and contexts? Recall the two Coca-cola machines: » » Now take the “Coke-only drinker”: » –Although, we have that: ’ ’  tr What the.. !? coin. (coke + sprite) coin.coke + coin.sprite coin. coke. drink ’ ’ problematic equality The coke drinker is certainly able to to distinguish the two dispensers !! Idea (can we…?): put the two dispensers in a context where they can be differentiated !

18 Semantics Q Trace Equiv. ~ DFM Acceptance Recall: a deterministic finite automaton, A: is completely identified by its set of traces: L (A) Trace equivalence ~ DFA acceptance: (without accept states - by construction) P  tr Q iff they can produce the same traces This point of view is totally justified and natural if we view our LTSs as non- deterministic devices that may generate or accept sequences of actions. However, is it still a reasonable one if we view our automata as reactive machines that interact with their environment ? -- [Aceto, Larsen, Ingólfsdóttir, p. 41]

19 Semantics Q S TRONG B ISIMULATION: ( ~ )

20 Semantics Q Def: A Strong Bisimulation Let (Proc, Act,  ) be a LTS Def: a bin. rel. R  Proc  Proc is a strong bisimulation iff whenever ( s, t )  R :  a  Act : if s  s’ then t  t’ for some t’ such that ( s’, t’ )  R if t  t’ then s  s’ for some s’ such that ( s’, t’ )  R Note: 1. Definition on LTS (not necessarily wrt. processes) 2. Definition relative to a (SOS) semantics (via LTS) a a a a a Intuition: “Only equate as consistently allowed by the semantics”

21 Semantics Q Def: Strongly Bisimilar ( ~ ) A Strong Bisimulation: Def: a bin. rel. R  Proc  Proc is a strong bisimulation iff whenever ( s, t )  R :  a  Act : if s  s’ then t  t’ for some t’ such that ( s’, t’ )  R if t  t’ then s  s’ for some s’ such that ( s’, t’ )  R The Strong Bisimilarity relation ( ~ ): Def: two (processes) s and t are strongly bisimilar ( s ~ t ) iff  strong bisimulation R : ( s, t )  R. i.e. a a a a ‘ ~ ’ :=  { R | R is a strong bisimulation }

22 Semantics Q Basic Properties of ( ~ ) Theorem: ‘ ~ ’ is an equivalence relation (exercise…) Theorem: ‘ ~ ’ is the largest strong bisimulation »i.e. for any bisimulation R we have that: R  ‘ ~ ’ Theorem: –s ~ t iff  a  Act : if s  s’ then t  t’ for some t’ such that s’ ~ t’ if t  t’ then s  s’ for some s’ such that s’ ~ t’ a a a a

23 Semantics Q How to Prove Strong Bisimilarity ? How to prove strong bisimilarity for two processes ? i.e. ?: Exhibit a (any) bisimulation R, for which: –By definition we get that: » since ‘ ~ ’ was the largest bisimulation ( s, t )  R  ‘ ~ ’ ( s, t )  R s ~ ts ~ t

24 Semantics Q Example Proof of Bisimilarity Example: Buffer (capacity 1): Buffer (capacity 2): Show that: A 0 = def in. A 1 A 1 = def out. A 0 B 0 = def in. B 1 B 1 = def in. B 2 + out. B 0 B 2 = def out. B 1 B 0 ~ A 0 |A 0 B0B0 B1B1 B2B2 A 0 |A 0 A 1 |A 0 A 0 |A 1 A 1 |A 1 R = { ( B 0, A 0 |A 0 ), ( B 1, A 1 |A 0 ), ( B 1, A 0 |A 1 ), ( B 2, A 1 |A 1 ) }

25 Semantics Q How to Prove Non-Bisimilarity ? How to prove non-bisimilarity ? i.e. ? Enumerate all binary relations: Check that none are bisimulations and contain (p,q) »However: extremely expensive O(2 |p||q| ) Use “Feynman Problem-Solving Algorithm”: »(1). Write down the problem; »(2). Think very hard; »(3). Write down the answer. Or… s ~ ts ~ t

26 Semantics Q ( ~ ) B ISIMULATION G AMES

27 Semantics Q The (Strong) Bisimulation Game Let (Proc, Act,  ) be a LTS and s, t  Proc Define 2-player game: [ attacker v defender ] The game is played in “rounds” and the configurations of the game are (Proc  Proc); »The game starts (first round) in ( s, t )  Proc  Proc Intuition (objectives): The defender wants to show that: The attacker wants to show that: a s ~ ts ~ t s ~ ts ~ t Cf. the note on SI proofs section 6 (p. 4).

28 Semantics Q Rules of the Bisimulation Game In round k the players change the current configuration ( s k, t k ) as follows: First, the attacker chooses: »1) one of the processes (e.g. t k ); i.e., left or right; »2) a legal action from that process: a  Act; »3) a legal transition according to the LTS: t k  t k+1 Then, the defender chooses: »-) a “counter-move” using same action, a: s k  s k+1 ( s k+1, t k+1 ) becomes the next round’s configuration… Winning: If one player (only) cannot move, the other player wins If the game is infinite (repeats configuration), the defender wins a a

29 Semantics Q Game Characterization of ( ~ ) Theorem: States (processes) s and t are not strongly bisimilar iff the attacker has a universal winning strategy States (processes) s and t are strongly bisimilar iff the defender has a universal winning strategy ( s ~ t ) basically means that: “the ‘perfect attacker’ always wins” ( s ~ t ) basically means that: “the ‘perfect defender’ always wins”

30 Semantics Q Let’s Play… Let’s play…: ~ / ~ ? show of hands… ~ ’ ’ ? coin. (coke + sprite) coin.coke + coin.sprite ’ ’ coin ’ ’ sprite coke

31 Semantics Q Another Game… Are the following two LTS(/processes) s and t strongly bisimilar: s ~ t ? There’s a universal attack strategy  hence, they are not strongly bisimilar : s ~ t

32 Semantics Q ( ~ ) C ONGRUENCE

33 Semantics Q ( ~ ) is a Congruence for CCS Theorem: Let P and Q be processes such that P ~ Q ; then: » .P ~ .Q   Act »P+R ~ Q+R  R  Proc »R+P ~ R+Q  R  Proc »P|R ~ Q|R  R  Proc »R|P ~ R|Q  R  Proc »P[f] ~ Q[f]  f : P(Act)  P(Act) relabellings »P\a ~ Q\a  a  Act \ {  } i.e. ‘ ~ ’ is a congruence for CCS

34 Semantics Q Other Properties of ( ~ ) The following properties hold  P, Q, R : P+Q ~ Q+P // ‘ + ’ commutative (P+Q)+R ~ P+(Q+R) // ‘ + ’ associative P|Q ~ Q|P // ‘ | ’ commutative (P|Q)|R ~ P|(Q|R) // ‘ | ’ associative P+0 ~ P // ‘ 0 ’ neutral wrt. ‘ + ’ P|0 ~ P // ‘ 0 ’ neutral wrt. ‘ | ’...

35 Semantics Q Summary: Strong Bisimilarity ( ~ ) Properties of ( ~ ): an equivalence relation: »reflexive, symmetric, and transitive the largest strong bisimulation: »for proving bisimilarity (exhibit a bisimulation) strong bisimulation game: »for proving non-bisimilarity (winning attack strategy) a congruence: »P ~ Q => C[P] ~ C[Q] obeys the following algebraic laws: »‘ + ’ and ‘ | ’ commutative, associative, and ‘ 0 ’ neutrality, … should we look any further ?!?

36 Semantics Q W EAK B ISIMULATION: (  )

37 Semantics Q Problems with Internal Actions: ‘  ’ Q: a.τ.0 ~ a.0 ? How would you show this? Problem ‘ ~ ’ does not: abstract away from internal actions Example: Disp = def coin. (coke.Disp + sprite.Disp) Stud = def study. coin. coke. Stud Impl = def (Disp | Stud) \ {coin,coke} Spec = def study. Spec Impl ~ Spec ?

38 Semantics Q Can we just erase tau-actions? Consider: However, notice: i.e. we cannot simply erase tau-actions! D nasty = def coin.coke.D nasty + coin.D nasty Stud = def study. coin. coke. Stud Impl = def (Disp | Stud) \ {coin,coke} (coin.coke.D nasty +coin.D nasty | coin.coke.Stud) \ … (coke.D nasty | coke.Stud) \ …(D nasty | coke.Stud) \ …  

39 Semantics Q Define Weak Transition Relation Def: the “weak transition relation”: ‘  ’ e.g., P  Q iff P  …  P’  Q’  …  Q –Means that we can perform an action, a, by: »first, “eating” any number of tau actions: »then, performing the a action; »last, “eating” any number of tau actions: This “eating” is precisely what will give the abstraction!       a a    :   ( ‘  ’ )* o ‘  ’ o ( ‘  ’ )*, if    ( ‘  ’ )*, if  =      

40 Semantics Q Def: A Weak Bisimulation Let (Proc, Act,  ) be a LTS Def: a bin. rel. R  Proc  Proc is a weak bisimulation iff whenever ( s, t )  R :  a  Act : if s  s’ then t  t’ for some t’ such that ( s’, t’ )  R if t  t’ then s  s’ for some s’ such that ( s’, t’ )  R Note: 1. Definition on LTS (not necessarily wrt. processes) 2. Definition relative to a (SOS) semantics (via LTS) a a a a a Intuition: “Only equate as consistently allowed by the semantics; …abstracting away from tau actions”

41 Semantics Q Def: Weakly Bisimilar (  ) A Weak Bisimulation: Def: a bin. rel. R  Proc  Proc is a weak bisimulation iff whenever ( s, t )  R :  a  Act : if s  s’ then t  t’ for some t’ such that ( s’, t’ )  R if t  t’ then s  s’ for some s’ such that ( s’, t’ )  R The Weak Bisimilarity relation (  ): Def: two (processes) s and t are weakly bisimilar ( s  t ) iff  weak bisimulation R : ( s, t )  R. i.e. a a a a ‘  ’ :=  { R | R is a weak bisimulation }

42 Semantics Q Example (from earlier) Example (from earlier): 1. Does it hold? 2. How would you show this? Disp = def coin. (coke.Disp + sprite.Disp) Stud = def study. coin. coke. Stud Impl = def (Disp | Stud)\{coin,coke,sprite} Spec = def study. Spec Impl  Spec ?

43 Semantics Q (  ) B ISIMULATION G AMES

44 Semantics Q Weak Game Characterization Let (Proc, Act,  ) be a LTS and s, t  Proc The game is “similar” except: The defender may now use the ‘  ’ relation »…and thus abstract away from  -actions The attacker still uses: ‘  ’ Theorem (  ): s  t iff  winning attack strategy s  t iff  winning defensive strategy a a a

45 Semantics Q Let’s Play… Example: a. .0  a.0 ? »How would you show this? Example’: 0  .0 ? a  a.0 + .0 ? Any remarks?!? Any consequences of the above? yes no  Thus “  ” not a congruence(!); due to ( P+[] ) yes

46 Semantics Q Summary: Weak Bisimilarity (  ) Properties of (  ): an equivalence relation: »reflexive, symmetric, and transitive the largest weak bisimulation: »for proving bisimilarity (exhibit a bisimulation) weak bisimulation game: »for proving non-bisimilarity (winning attack strategy) not a congruence: »P  Q => C[P]  C[Q] obeys the following algebraic laws: »‘ + ’ and ‘ | ’ commutative, associative, and ‘ 0 ’ neutrality, … abstracts away from internal tau-actions

47 Semantics Q (  ):“Fair Abstraction from Divergence” Consider: A = def a.0 + .B B = def b.0 + .A –Note that: »A  B  a.0 + b.0 !!!..and even: Div = def .Div »0  Div !!! Intuition: “Fair Abstraction from Divergence”: »  “assumes processes (eventually) escape from loops”

48 Semantics Q CCS T OOLS

49 Semantics Q Example: A Protocol Implementation: » Specification: » Verification: » and what does that mean? P spec = def acc. del. P spec P impl = def ( Send | Med | Rec ) \ L L = {send,error,trans,ack} accept deliver P spec ~ P impl P spec  P impl ? ? senderreceiver (transport) medium

50 Semantics Q The Concurrency Workbench CWB: Recommendation: try it out (before the exam)! Command: eq(Spec,Impl); // weak bisimilarity CWB’s answer Command: strongeq(Spec,Impl); // strong bisimilarity CWB’s answer

51 Semantics Q The Bisimulation Game Game The Bisimulation Game Game ® Special Family Edition (w/ TV cables & remote control) »Beat your sister at Process Algebra simulation… “Special Family Edition!” “ The Bisimulation Game ” Only $31,95 The Bisimulation Game [ ]

52 Semantics Q "Three minutes paper" Please spend three minutes writing down the most important things that you have learned today (now). After 1 day After 1 week After 3 weeks After 2 weeks Right away

53 Semantics Q Next week: Program Equivalence, Imperative Blocks, Implementation, and other Semantic formalisms Any Questions? Thanks to Jiří Srba for inspiration to many of the slides