Modular Bisimulation Theory for Computations and Values

Size: px
Start display at page:

Download "Modular Bisimulation Theory for Computations and Values"

Transcription

1 Modular Bisimulation Theory for Computations and Values Swansea University, UK FoSSaCS, Rome March 2013

2 Part of the project: PLanCompS EPSRC-funded, {Swansea, Royal Holloway, City}, UK Scaling up formal semantics to real-world programming languages Upcoming workshop: Scalable Language Specification (SLS13) with project partner Microsoft Research Cambridge Here we work on equivalence for operational semantics: bisimulation congruence formats

3 Bisimulation Bisimilarity provides notions of behavioural equivalence for operational semantics. Defined for transition relation s l t. If s and t are (strongly) bisimilar, they can match each step and remain bisimilar: s t and s l s implies t with t l t and s t.

4 Congruence But: Any notion of equivalence should be a congruence: For each f, s 1 t 1,..., s n t n implies f (s 1,..., s n ) f (t 1,..., t n ) one can replace a term by an equivalent term in a larger context, and the overall context remains equivalent Enables compositional reasoning Bisimilarity is not guaranteed to be a congruence!

5 Congruence formats Transition systems for operational semantics can be defined inductively by SOS rules (Plotkin) There are known formats for such rules which guarantee that bisimulation is a congruence. (GSOS, tyft/tyxt,... ) l {t i i yi : i I } f (x 1,..., x n ) l t x l x x y l x y y l y x y l x y

6 Well-suited to process algebras but not to programming languages: Programming language terms can compute values Programming language transition systems generally have auxiliary entities (stores, environments,... ) which can contain arbitrary terms

7 Well-suited to process algebras but not to programming languages: Programming language terms can compute values Programming language transition systems generally have auxiliary entities (stores, environments,... ) which can contain arbitrary terms not in congruence formats! ρ[x v] s s ρ apply(λx.s, v) apply(λx.s, v) ρ apply(λx.v 1, v 2 ) v 1

8 Contribution What about bisimulation congruence for programming languages? In this work we describe a new congruence format which: can deal adequately with computed values can deal adequately with auxiliary entities higher-order bisimulation scales up to real programming languages (supports MSOS)

9 Bisimulation for Value-computation Systems

10 Values and Computations We distinguish between value terms and computational terms. Values are, computations do (Levy) Values: Booleans, integers, function abstractions,... Computations: Expressions, commands, declarations, processes, programs,...

11 Values and computations Values can be inspected, computations have behaviour. Any observing context must be able to distinguish values e.g. true and false. But they cannot interrogate the structure of arbitrary computational terms: otherwise equivalence would reduce to syntactic identity.

12 Values and computations Values can be inspected, computations have behaviour. Any observing context must be able to distinguish values e.g. true and false. But they cannot interrogate the structure of arbitrary computational terms: otherwise equivalence would reduce to syntactic identity. Algebraic signature, values determined by a set of value constructors (true, false, thunk( ),...)

13 Value-computation Bisimulation A symmetric relation R satisfying the usual bisimulation step conditions, plus: If v(s 1,..., s n ) R v 1 with v VC, then v 1 = v(t 1,..., t n ) with s i R t i for 1 i n. Bisimilar values have the same head constructor and bisimilar arguments.

14 Value-computation Bisimulation A symmetric relation R satisfying the usual bisimulation step conditions, plus: If v(s 1,..., s n ) R v 1 with v VC, then v 1 = v(t 1,..., t n ) with s i R t i for 1 i n. Bisimilar values have the same head constructor and bisimilar arguments. Congruence format: Arguments of conclusion source, targets of premises must be patterns a term made of variables and value constructors. Generalisation of tyft format (Groote, Vaandrager) l {t i i ui : i I } f (w 1,..., w n ) l t

15 Higher-order Bisimulation for MSOS

16 Auxiliary entities For programming languages, we can place auxiliary entities (store etc) in the label indexed record of terms. Examples: env, an environment mapping identifiers to the values they are bound to ( read component) exc, which signals whether an exception has occurred, and if so which ( write component) store, a mapping from reference cells to their current value (changeable read + write component)...

17 Examples bound(x) {env=ρ, } lookup(ρ, x) y {env=update(ρ,x,v),...} y let(x, v, y) {env=ρ,...} let(x, v, y ) throw(e) {exc =exc(e), } stuck y {exc =nil,...} y catch(y, f ) {exc =nil,...} catch(y, f ) y {exc =exc(e),...} y catch(y, f ) {exc =nil,...} apply(f, e) catch(v, f ) { } v... is a variable ranging over the rest of the label provides defaults for unmentioned entities lookup is a computational constructor for maps. update, nil, exc are value constructors. NB: information flows between source, label components, target

18 Higher-order bisimulation We wish to ensure that bisimulation is a congruence. If s t is to imply throw(s) throw(t) we must allow label components to vary up to bisimulation in the step (a higher-order bisimulation).

19 Bisimulation for MSOS As before, except step condition becomes: If s R t and s l s then t, l with s R t, t l t, reads(l ) = reads(l) and writes(l) R writes(l ). Write components in the label can vary up to bisimulation

20 Bisimulation for MSOS As before, except step condition becomes: If s R t and s l s then t, l with s R t, t l t, reads(l ) = reads(l) and writes(l) R writes(l ). Write components in the label can vary up to bisimulation Congruence format: (MSOS-tyft) In the conclusion, readable components must be patterns In premises, writeable components must be patterns

21 Bisimulation for MSOS As before, except step condition becomes: If s R t and s l s then t, l with s R t, t l t, reads(l ) = reads(l) and writes(l) R writes(l ). Write components in the label can vary up to bisimulation Congruence format: (MSOS-tyft) In the conclusion, readable components must be patterns In premises, writeable components must be patterns Requires lemma: One can replace inputs (read components) for bisimilar ones to yield bisimilar outputs (write components) applicative bisimulation (Howe)

22 Conclusions

23 Expressivity MSOS-tyft format expressive enough to model Caml Light: Higher-order functions, imperative state, exceptions, mutual recursion, pattern matching,... Equivalences are valid in arbitrary program contexts

24 Expressivity MSOS-tyft format expressive enough to model Caml Light: Higher-order functions, imperative state, exceptions, mutual recursion, pattern matching,... Equivalences are valid in arbitrary program contexts [We translate Caml Light programs into reusable constructs, yielding a component-based formal semantics of the language.]

25 Further Directions Theory: Multisorted signatures Bisimulations parametrised on read components (env,... ) cf. state-based bisimilarity (Mousavi) Negative premises Practice: Larger language examples, e.g. C#, Java,...

26 Conclusions We have: defined a bisimulation congruence format dealing with computed values and auxiliary entities which supports a higher-order notion of bisimulation and Modular SOS and is expressive enough to treat a real world programming language. Thank You.

27 Appendix (some more detailed slides)

28 Value-computation signatures Definition A value-computation signature consists of a set of constructors C, each with an arity in N, and a set of value constructors VC C. We let T denote the set of terms, and V T the set of value terms whose outermost constructor is in VC. Constants like true,5,... are nullary value constructors, and hence values. cond is not a value constructor, so cond(b, C, D) is never a value. thunk is a value constructor that can wrap an arbitrary computation into a value.

29 Value-computation transition systems Fix a set of labels L. We wish to define our relation s l t with s, t T and l L to model computations. We define this via inductive rules. It is useful to introduce an additional internal relation for silent, context-insensitive steps which we write as. This relation is reflexive, transitive and a precongruence. x x x 1 y 1 x n y n f (x 1,..., y n ) f (x 1,..., y n ) x y y z x z x x 1 x 1 l y 1 x l y y 1 y

30 Value-computation Bisimulation Definition A value-computation bisimulation over a given value-computation transition system (Σ, L,, ) is a symmetric relation R T Σ T Σ such that If s R t and s l s then t with s R t and t l t. If s R t and s s then t with s R t and t t. If v(s 1,..., s n ) R t with v VC, then t v(t 1,..., t n ) with s i R t i for 1 i n. Two terms s and t are value-computation bisimilar, written s vc t, if there exists a value-computation bisimulation R with s R t.

31 Congruence Format {s i i u i : i I } f (w 1,..., w n ) t Adaptation of the tyft format [?] (Each, i { } { a : a L}.) But u i and w i generalised from variables to patterns a term made of variables and value constructors. Allows rules such as seq(skip, s) s and force(thunk(s)) s. For rules in this value-added tyft format, vc-bisimilarity is a congruence.

32 Composition and Unobservability For each label component, there are default unobservable labels for unmentioned components. print(x) {output =x,env=ρ,store=σ,store =σ,exc=nil} skip Labels may also be composed: seq(assign(y, 6), assign(x, 5)) {store=σ,store =update(σ,y,6), } seq(skip, assign(x, 5)) assign(x, 5) {store=σ 1,store =update(σ 1,x,5), } skip seq(assign(y, 6), assign(x, 5)) {store=σ,store =σ[x 6,y 5], } skip Ensures e.g. single-threaded store. Each label component is a category.

33 Bisimulation for MSOS Definition Given a value-computation transition system (Σ, L(T Σ ),, ) generated from an MSOS specification, an MSOS bisimulation is a symmetric relation R T T such that: If s R t and s L s then t, L with s R t, t L t, reads(l ) = reads(l) and writes(l) R writes(l ). If s R t and s s then t with s R t and t t. If v(s 1,..., s n ) R t with v VC, then t v(t 1,..., t n ) with s i R t i for 1 i n. Two terms s and t are MSOS bisimilar, written s msos t, if there exists an MSOS bisimulation R with s R t.

34 MSOS tyft format {s i i u i : i I } f (w 1,..., w n ) t (Each, i { } { L }.) For labels L: In the conclusion, readable components must be patterns {l = u, l = t,...} In premises i, writeable components must be patterns {l = t, l = u,...} We allow composition and unobservability in conclusion

35 Bisimilarity-preservation for unprimed entities To show congruence of bisimilarity for MSOS tyft, we need: One can replace read components (environment, initial store,... ) for bisimilar ones to yield bisimilar write components (final store, thrown exceptions,... ) and target term applicative bisimulation (Howe) If s L s and reads(l) trs then: s, tws such that s s, writes(l) tws and s L s for reads(l ) = trs and writes(l ) = tws. Theorem MSOS-bisimilarity is a congruence for the MSOS tyft format.

36 throw(x) {exc =exc(x), } stuck catch(v, x, z) v y {...} y assign(x, y) {...} assign(x, y ) deref(x) {store=σ, } lookup(σ, x) x {exc =nil,...} x catch(x, y, z) {exc =nil,...} catch(x, y, z) x {exc =exc(x 1 ),...} x catch(x, y, z) {exc =nil,...} let(y, x 1, z) assign(x, v) {store=σ,store =update(σ,x,v), } skip assign and deref are constructors for imperative store. throw and catch for exception handling. NB: provides defaults for the rest of the label (e.g. store = store, exc = nil)

37 Application and Abstraction x {...} x apply(x, y) {...} apply(x, y) y {...} y apply(v, y) {...} apply(v, y ) y {env=update(ρ,x,v),...} y apply(abs(x, y, ρ), v) {env=ρ 1,...} apply(abs(x, y, ρ), v) apply(abs(x, v 1, ρ), v 2 ) v 1 lambda(x, y) {env=ρ,...} abs(x, y, ρ)

Semantics and Verification of Software

Semantics and Verification of Software Semantics and Verification of Software Thomas Noll Software Modeling and Verification Group RWTH Aachen University http://moves.rwth-aachen.de/teaching/ss-15/sv-sw/ The Denotational Approach Denotational

More information

Rooted Branching Bisimulation as a Congruence

Rooted Branching Bisimulation as a Congruence Rooted Branching Bisimulation as a Congruence Wan Fokkink University of Wales Swansea Department of Computer Science Singleton Park, Swansea SA2 8PP, Wales w.j.fokkink@swan.ac.uk Abstract This article

More information

Operational Semantics Using the Partiality Monad

Operational Semantics Using the Partiality Monad page.1 Operational Semantics Using the Partiality Monad Nils Anders Danielsson (Göteborg) Shonan Meeting 026: Coinduction for computation structures and programming languages The research leading to these

More information

Logic for Computational Effects: work in progress

Logic for Computational Effects: work in progress 1 Logic for Computational Effects: work in progress Gordon Plotkin and John Power School of Informatics University of Edinburgh King s Buildings Mayfield Road Edinburgh EH9 3JZ Scotland gdp@inf.ed.ac.uk,

More information

SOS formats and meta-theory: 20 years after

SOS formats and meta-theory: 20 years after Theoretical Computer Science 373 (2007) 238 272 www.elsevier.com/locate/tcs SOS formats and meta-theory: 20 years after MohammadReza Mousavi,1, Michel A. Reniers, Jan Friso Groote Department of Computer

More information

Bialgebraic Methods in Structural Operational Semantics

Bialgebraic Methods in Structural Operational Semantics SOS 2006 Preliminary Version Bialgebraic Methods in Structural Operational Semantics (Invited Talk) Bartek 1,2 Warsaw University, Edinburgh University Abstract Bialgebraic semantics, invented a decade

More information

Denotational Semantics of Programs. : SimpleExp N.

Denotational Semantics of Programs. : SimpleExp N. Models of Computation, 2010 1 Denotational Semantics of Programs Denotational Semantics of SimpleExp We will define the denotational semantics of simple expressions using a function : SimpleExp N. Denotational

More information

Deriving Pretty-Big-Step Semantics from Small-Step Semantics

Deriving Pretty-Big-Step Semantics from Small-Step Semantics Deriving Pretty-Big-Step Semantics from Small-Step Semantics Casper Bach Poulsen and Peter D. Mosses Department of Computer Science, Swansea University, Swansea, UK, cscbp@swansea.ac.uk, p.d.mosses@swansea.ac.uk

More information

MAKING THE UNOBSERVABLE, UNOBSERVABLE.

MAKING THE UNOBSERVABLE, UNOBSERVABLE. MAKING THE UNOBSERVABLE, UNOBSERVABLE. 3 PAPERS FROM THE LAST 365 DAYS AVAILABLE TO READ NOW ON YOUR COMPUTER PAWEL SOBOCINSKI AND JULIAN RATHKE GO TO www.ecs.soton.ac.uk/~ps/publications.php Plan of the

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

Streams and Coalgebra Lecture 2

Streams and Coalgebra Lecture 2 Streams and Coalgebra Lecture 2 Helle Hvid Hansen and Jan Rutten Radboud University Nijmegen & CWI Amsterdam Representing Streams II, Lorentz Center, Leiden, January 2014 Tutorial Overview Lecture 1 (Hansen):

More information

Structural Operational Semantics

Structural Operational Semantics SOS 2006 Preliminary Proceedings of the 3rd Workshop on Structural Operational Semantics Bonn, Germany, 26th August 2006 Editors: Rob van Glabbeek and Peter D. Mosses ii Contents Preface v Bartek Klin

More information

A Thread Algebra with Multi-level Strategic Interleaving

A Thread Algebra with Multi-level Strategic Interleaving Theory of Computing Systems manuscript No. (will be inserted by the editor) A Thread Algebra with Multi-level Strategic Interleaving J.A. Bergstra 1,2, C.A. Middelburg 3,1 1 Programming Research Group,

More information

Structural Operational Semantics for Weighted Transition Systems

Structural Operational Semantics for Weighted Transition Systems Structural Operational Semantics for Weighted Transition Systems Bartek Klin Warsaw University, University of Cambridge Abstract. Weighted transition systems are defined, parametrized by a commutative

More information

Tutorial on Semantics Part I

Tutorial on Semantics Part I Tutorial on Semantics Part I Basic Concepts Prakash Panangaden 1 1 School of Computer Science McGill University on sabbatical leave at Department of Computer Science Oxford University Fields Institute,

More information

A semantic framework for open processes

A semantic framework for open processes Theoretical Computer Science 389 (2007) 446 483 www.elsevier.com/locate/tcs A semantic framework for open processes P. Baldan a, A. Bracciali b,, R. Bruni b a Dipartimento di Matematica Pura e Applicata,

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

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

Equations, contractions, and unique solutions

Equations, contractions, and unique solutions Equations, contractions, and unique solutions Davide Sangiorgi To cite this version: Davide Sangiorgi. Equations, contractions, and unique solutions. POPL 2015 - Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT

More information

HANDLING ALGEBRAIC EFFECTS

HANDLING ALGEBRAIC EFFECTS HANDLING ALGEBRAIC EFFECTS GORDON D. PLOTKIN AND MATIJA PRETNAR Laboratory for Foundations of Computer Science, School of Informatics, University of Edinburgh, Scotland e-mail address: gdp@inf.ed.ac.uk

More information

A Semantic Framework for Open Processes

A Semantic Framework for Open Processes A Semantic Framework for Open Processes P. Baldan (1), A. Bracciali (2), R. Bruni (2) (1) Dipartimento di Matematica Pura e Applicata, Università di Padova (Italy) baldan@math.unipd.it (2) Dipartimento

More information

Formal Techniques for Software Engineering: Denotational Semantics

Formal Techniques for Software Engineering: Denotational Semantics Formal Techniques for Software Engineering: Denotational Semantics Rocco De Nicola IMT Institute for Advanced Studies, Lucca rocco.denicola@imtlucca.it May 2013 Lesson 4 R. De Nicola (IMT-Lucca) FoTSE@LMU

More information

Dynamic Noninterference Analysis Using Context Sensitive Static Analyses. Gurvan Le Guernic July 14, 2007

Dynamic Noninterference Analysis Using Context Sensitive Static Analyses. Gurvan Le Guernic July 14, 2007 Dynamic Noninterference Analysis Using Context Sensitive Static Analyses Gurvan Le Guernic July 14, 2007 1 Abstract This report proposes a dynamic noninterference analysis for sequential programs. This

More information

Declarative Computation Model. Conditional. Case statement. Procedure values (2) Procedure values. Sequential declarative computation model

Declarative Computation Model. Conditional. Case statement. Procedure values (2) Procedure values. Sequential declarative computation model Declarative Computation Model Kernel language semantics revisited (VRH.4.5) From kernel to practical language (VRH.6) Exceptions (VRH.7) Carlos Varela RPI October 0, 009 Adapted with permission from: Seif

More information

A Tableau Calculus for Minimal Modal Model Generation

A Tableau Calculus for Minimal Modal Model Generation M4M 2011 A Tableau Calculus for Minimal Modal Model Generation Fabio Papacchini 1 and Renate A. Schmidt 2 School of Computer Science, University of Manchester Abstract Model generation and minimal model

More information

Lists, Stacks, and Queues (plus Priority Queues)

Lists, Stacks, and Queues (plus Priority Queues) Lists, Stacks, and Queues (plus Priority Queues) The structures lists, stacks, and queues are composed of similar elements with different operations. Likewise, with mathematics: (Z, +, 0) vs. (Z,, 1) List

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

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

Specification of Core Agda Subtitle

Specification of Core Agda Subtitle 1 Specification of Core Agda Subtitle THE AGDA SPECIFICATION TEAM, Institution1 FIRST2 LAST2, Institution2a and Institution2b This document specifies the abstract syntax, evaluation rules, and typing rules

More information

Relative Hilbert-Post completeness for exceptions

Relative Hilbert-Post completeness for exceptions Relative Hilbert-Post completeness for exceptions Dominique Duval with J.-G. Dumas, B. Ekici, D. Pous, J.-C. Reynaud LJK University of Grenoble-Alpes and ENS Lyon November 12., 2015 MACIS 2015, Berlin

More information

Mathematical Synthesis of Equational Deduction Systems. Marcelo Fiore. Computer Laboratory University of Cambridge

Mathematical Synthesis of Equational Deduction Systems. Marcelo Fiore. Computer Laboratory University of Cambridge Mathematical Synthesis of Equational Deduction Systems Marcelo Fiore Computer Laboratory University of Cambridge TLCA 2009 3.VII.2009 Context concrete theories meta-theories Context concrete theories meta-theories

More information

Denotational semantics

Denotational semantics Denotational semantics The method define syntax (syntactic domains) define semantic domains define semantic functions use compositional definitions Andrzej Tarlecki: Semantics & Verification - 63 - Syntactic

More information

Semantics for algebraic operations

Semantics for algebraic operations MFPS 17 Preliminary Version Semantics for algebraic operations Gordon Plotkin and John Power 1 Laboratory for the Foundations of Computer Science University of Edinburgh King s Buildings, Edinburgh EH9

More information

Principles of Program Analysis: Control Flow Analysis

Principles of Program Analysis: Control Flow Analysis Principles of Program Analysis: Control Flow Analysis Transparencies based on Chapter 3 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis. Springer Verlag

More information

A few bridges between operational and denotational semantics of programming languages

A few bridges between operational and denotational semantics of programming languages A few bridges between operational and denotational semantics of programming languages Soutenance d habilitation à diriger les recherches Tom Hirschowitz November 17, 2017 Hirschowitz Bridges between operational

More information

Semantics and Verification

Semantics and Verification Semantics and Verification Lecture 2 informal introduction to CCS syntax of CCS semantics of CCS 1 / 12 Sequential Fragment Parallelism and Renaming CCS Basics (Sequential Fragment) Nil (or 0) process

More information

HANDLING ALGEBRAIC EFFECTS

HANDLING ALGEBRAIC EFFECTS HANDLING ALGEBRAIC EFFECTS GORDON D. PLOTKIN AND MATIJA PRETNAR Laboratory for Foundations of Computer Science, School of Informatics, University of Edinburgh, Scotland e-mail address: gdp@inf.ed.ac.uk

More information

ON FIRST-ORDER CONS-FREE TERM REWRITING AND PTIME

ON FIRST-ORDER CONS-FREE TERM REWRITING AND PTIME ON FIRST-ORDER CONS-FREE TERM REWRITING AND PTIME CYNTHIA KOP Department of Computer Science, Copenhagen University e-mail address: kop@diku.dk Abstract. In this paper, we prove that (first-order) cons-free

More information

Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types

Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types Realizability Semantics of Parametric Polymorphism, General References, and Recursive Types Lars Birkedal IT University of Copenhagen Joint work with Kristian Støvring and Jacob Thamsborg Oct, 2008 Lars

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

A Behavioral Congruence for Concurrent Constraint Programming with Nondeterministic Choice

A Behavioral Congruence for Concurrent Constraint Programming with Nondeterministic Choice A Behavioral Congruence for Concurrent Constraint Programming with Nondeterministic Choice Luis Pino*, Filippo Bonchi** and Frank Valencia* (Presented by: Jorge A. Pe rez) *E quipe Come te, LIX, Laboratoire

More information

Program Analysis Part I : Sequential Programs

Program Analysis Part I : Sequential Programs Program Analysis Part I : Sequential Programs IN5170/IN9170 Models of concurrency Program Analysis, lecture 5 Fall 2018 26. 9. 2018 2 / 44 Program correctness Is my program correct? Central question for

More information

Realization of Coinductive Types

Realization of Coinductive Types MFPS 2011 Realization of Coinductive Types Dexter Kozen 1,2 Department of Computer Science Cornell University Ithaca, New York 14853 7501, USA Abstract We give an explicit combinatorial construction of

More information

An introduction to process calculi: Calculus of Communicating Systems (CCS)

An introduction to process calculi: Calculus of Communicating Systems (CCS) An introduction to process calculi: Calculus of Communicating Systems (CCS) Lecture 2 of Modelli Matematici dei Processi Concorrenti Paweł Sobociński University of Southampton, UK Intro to process calculi:

More information

Safety Analysis versus Type Inference

Safety Analysis versus Type Inference Information and Computation, 118(1):128 141, 1995. Safety Analysis versus Type Inference Jens Palsberg palsberg@daimi.aau.dk Michael I. Schwartzbach mis@daimi.aau.dk Computer Science Department, Aarhus

More information

Notes on Inductive Sets and Induction

Notes on Inductive Sets and Induction Notes on Inductive Sets and Induction Finite Automata Theory and Formal Languages TMV027/DIT21 Ana Bove, March 15th 2018 Contents 1 Induction over the Natural Numbers 2 1.1 Mathematical (Simple) Induction........................

More information

First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods

First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods Elsa L Gunter 2112 SC, UIUC egunter@illinois.edu http://courses.engr.illinois.edu/cs477 Slides based in part on previous lectures

More information

Dipartimento di Informatica Università degli Studi di Verona

Dipartimento di Informatica Università degli Studi di Verona Dipartimento di Informatica Università degli Studi di Verona Rapporto di ricerca Research report 40/2006 On the observational theory of the CPS-calculus Massimo Merro Corrado Biasi Dipartimento di Informatica

More information

Constructors - Cont. must be distinguished by the number or type of their arguments.

Constructors - Cont. must be distinguished by the number or type of their arguments. Constructors - Cont. 1 Constructors can be overloaded! must be distinguished by the number or type of their arguments. 2 When no constructor is defined, there is a default constructor with no arguments.

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

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

Symbolic execution based on language transformation

Symbolic execution based on language transformation Symbolic execution based on language transformation Andrei Arusoaie, Dorel Lucanu, Vlad Rusu To cite this version: Andrei Arusoaie, Dorel Lucanu, Vlad Rusu. Symbolic execution based on language transformation.

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

Atomicity in non-atomic information systems

Atomicity in non-atomic information systems Atomicity in non-atomic information systems Basil A. Karádais Institute of Mathematics Ludwig-Maximilian University of Munich January 9th, 2013 Algebras We consider finitary algebras ι, given by a finite

More information

Laws of Parallel Synchronised Termination

Laws of Parallel Synchronised Termination Laws of Parallel Synchronised Termination David Sands dave@diku.dk DIKU, University of Copenhagen Universitetsparken 1, DK-2100 København Ø, Denmark. Abstract The salient feature of the composition operators

More information

Lecture 2: Syntax. January 24, 2018

Lecture 2: Syntax. January 24, 2018 Lecture 2: Syntax January 24, 2018 We now review the basic definitions of first-order logic in more detail. Recall that a language consists of a collection of symbols {P i }, each of which has some specified

More information

arxiv: v1 [cs.pl] 19 May 2016

arxiv: v1 [cs.pl] 19 May 2016 arxiv:1605.05858v1 [cs.pl] 19 May 2016 Domain Theory: An Introduction Robert Cartwright Rice University Rebecca Parsons ThoughtWorks, Inc. Moez AbdelGawad SRTA-City Hunan University This monograph is an

More information

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany Softwaretechnik Lecture 13: Design by Contract Peter Thiemann University of Freiburg, Germany 25.06.2012 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

More information

How to Prove Similarity a Precongruence in Non-Deterministic Call-by-Need Lambda Calculi

How to Prove Similarity a Precongruence in Non-Deterministic Call-by-Need Lambda Calculi How to Prove Similarity a Precongruence in Non-Deterministic Call-by-Need Lambda Calculi Matthias Mann and Manfred Schmidt-Schauß Institut für Informatik Johann Wolfgang Goethe-Universität Postfach 11

More information

CS 4110 Programming Languages & Logics. Lecture 16 Programming in the λ-calculus

CS 4110 Programming Languages & Logics. Lecture 16 Programming in the λ-calculus CS 4110 Programming Languages & Logics Lecture 16 Programming in the λ-calculus 30 September 2016 Review: Church Booleans 2 We can encode TRUE, FALSE, and IF, as: TRUE λx. λy. x FALSE λx. λy. y IF λb.

More information

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany

Softwaretechnik. Lecture 13: Design by Contract. Peter Thiemann University of Freiburg, Germany Softwaretechnik Lecture 13: Design by Contract Peter Thiemann University of Freiburg, Germany 25.06.2012 Table of Contents Design by Contract Contracts for Procedural Programs Contracts for Object-Oriented

More information

Programming Languages and Types

Programming Languages and Types Programming Languages and Types Klaus Ostermann based on slides by Benjamin C. Pierce Subtyping Motivation With our usual typing rule for applications the term is not well typed. ` t 1 : T 11!T 12 ` t

More information

An Abstract Decision Procedure for a Theory of Inductive Data Types

An Abstract Decision Procedure for a Theory of Inductive Data Types An Abstract Decision Procedure for a Theory of Inductive Data Types lark Barrett Igor Shikanian Department of omputer Science ourant Institute of Mathematical Sciences New York University esare Tinelli

More information

Proposition algebra and short-circuit logic

Proposition algebra and short-circuit logic Proposition algebra and short-circuit logic Jan A. Bergstra and Alban Ponse Section Theory of Computer Science Informatics Institute, Faculty of Science University of Amsterdam, The Netherlands www.science.uva.nl/{~janb/,~alban/}

More information

Hoare Logic and Model Checking

Hoare Logic and Model Checking Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Introduction In the

More information

Formalizing Programming Variables in Process Algebra

Formalizing Programming Variables in Process Algebra Formalizing Programming Variables in Process Algebra Jos C.M. Baeten Formal Methods Group Department of Mathematics and Computer Science Eindhoven University of Technology P.O. Box 513 NL 5600 MB Eindhoven

More information

The L Machines are very high-level, in two senses:

The L Machines are very high-level, in two senses: What is a Computer? State of the machine. CMPSCI 630: Programming Languages An Abstract Machine for Control Spring 2009 (with thanks to Robert Harper) Internal registers, memory, etc. Initial and final

More information

A categorical view of computational effects

A categorical view of computational effects Emily Riehl Johns Hopkins University A categorical view of computational effects C mp se::conference 1. Functions, composition, and categories 2. Categories for computational effects (monads) 3. Categories

More information

Universität Augsburg

Universität Augsburg Universität Augsburg Algebraic Separation Logic H.-H. Dang P. Höfner B. Möller Report 2010-06 July 2010 Institut für Informatik D-86135 Augsburg Copyright c H.-H. Dang P. Höfner B. Möller Institut für

More information

Inducing syntactic cut-elimination for indexed nested sequents

Inducing syntactic cut-elimination for indexed nested sequents Inducing syntactic cut-elimination for indexed nested sequents Revantha Ramanayake Technische Universität Wien (Austria) IJCAR 2016 June 28, 2016 Revantha Ramanayake (TU Wien) Inducing syntactic cut-elimination

More information

Relating Reasoning Methodologies in Linear Logic and Process Algebra

Relating Reasoning Methodologies in Linear Logic and Process Algebra Relating Reasoning Methodologies in Linear Logic and Process Algebra Yuxin Deng Robert J. Simmons Iliano Cervesato December 2011 CMU-CS-11-145 CMU-CS-QTR-111 School of Computer Science Carnegie Mellon

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

Bilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft)

Bilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft) Bilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft) Jayadev Misra December 18, 2015 Contents 1 Introduction 3 2 Program and Execution Model 4 2.1 Program Structure..........................

More information

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages )

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages ) Formal Methods Lecture 6 (B. Pierce's slides for the book Types and Programming Languages ) This Saturday, 10 November 2018, room 335 (FSEGA), we will recover the following activities: 1 Formal Methods

More information

Operationally-Based Theories of Program Equivalence

Operationally-Based Theories of Program Equivalence Operationally-Based Theories of Program Equivalence Andrew Pitts Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 241 2 Contextual Equivalence : : : : : : : : : : : : : :

More information

Linearity and Passivity

Linearity and Passivity Linearity and Passivity David A. 1 School of Computing University of Tasmania GPO Box 252-100 Hobart 7001 Australia Abstract A simple symmetric logic is proposed which captures both the notions of Linearity

More information

Isomorphism of Finitary Inductive Types

Isomorphism of Finitary Inductive Types Isomorphism of Finitary Inductive Types Christian Sattler joint work (in progress) with Nicolai Kraus University of Nottingham May 2014 Motivating Example Generic data may be represented in a multitude

More information

Structural Operational Semantics

Structural Operational Semantics Structural Operational Semantics Luca Aceto Wan Fokkink Chris Verhoef Contents 1 Introduction 5 2 Preliminaries 8 2.1 Labelled Transition Systems................... 8 2.2 Behavioural Equivalences and Preorders............

More information

Communication and Concurrency: CCS

Communication and Concurrency: CCS Communication and Concurrency: CCS R. Milner, A Calculus of Communicating Systems, 1980 cours SSDE Master 1 Why calculi? Prove properties on programs and languages Principle: tiny syntax, small semantics,

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

Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization

Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization Rob Schoren Abstract This document is mainly an extension of the work of Michel Reniers and Tim Willemse,

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

A Bisimulation-Like Proof Method for Contextual Properties in Untyped λ-calculus with References and Deallocation

A Bisimulation-Like Proof Method for Contextual Properties in Untyped λ-calculus with References and Deallocation A Bisimulation-Like Proof Method for Contextual Properties in Untyped λ-calculus with References and Deallocation Eijiro Sumii Graduate School of Information Sciences, Tohoku University, Aoba-ku Aramki

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

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2016.6.1 COMPUTER SCIENCE TRIPOS Part IB Thursday 2 June 2016 1.30 to 4.30 COMPUTER SCIENCE Paper 6 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Model Theory MARIA MANZANO. University of Salamanca, Spain. Translated by RUY J. G. B. DE QUEIROZ

Model Theory MARIA MANZANO. University of Salamanca, Spain. Translated by RUY J. G. B. DE QUEIROZ Model Theory MARIA MANZANO University of Salamanca, Spain Translated by RUY J. G. B. DE QUEIROZ CLARENDON PRESS OXFORD 1999 Contents Glossary of symbols and abbreviations General introduction 1 xix 1 1.0

More information

A Modular Rewriting Semantics for CML

A Modular Rewriting Semantics for CML A Modular Rewriting Semantics for CML Fabricio Chalub Barbosa do Rosário frosario@ic.uff.br 19 de março de 2004 0-0 Outline A closer look at MSOS Mapping MSOS to MRS Executing and model checking CML programs

More information

Streams and Coalgebra Lecture 1

Streams and Coalgebra Lecture 1 Streams and Coalgebra Lecture 1 Helle Hvid Hansen and Jan Rutten Radboud University Nijmegen & CWI Amsterdam Representing Streams II, Lorentz Center, Leiden, January 2014 Tutorial Overview Lecture 1 (Hansen):

More information

Self-Adaptation and Information Flow in Multiparty Communications

Self-Adaptation and Information Flow in Multiparty Communications Self-Adaptation and Information Flow in Multiparty Communications Joint work with Ilaria Castellani (INRIA, FR) Jorge A. Pérez (University of Groningen, NL) ABCD meeting London, 20th April, 2015 1 / 36

More information

ESE601: Hybrid Systems. Introduction to verification

ESE601: Hybrid Systems. Introduction to verification ESE601: Hybrid Systems Introduction to verification Spring 2006 Suggested reading material Papers (R14) - (R16) on the website. The book Model checking by Clarke, Grumberg and Peled. What is verification?

More information

Making the unobservable, unobservable

Making the unobservable, unobservable ICE 2008 Making the unobservable, unobservable Julian Rathke ecs, University of Southampton awe l Sobociński 1 ecs, University of Southampton Abstract Behavioural equivalences of various calculi for modelling

More information

Concurrent Processes and Reaction

Concurrent Processes and Reaction Concurrent Processes and Reaction Overview External and internal actions Observations Concurrent process expressions Structural congruence Reaction References Robin Milner, Communication and Concurrency

More information

185.A09 Advanced Mathematical Logic

185.A09 Advanced Mathematical Logic 185.A09 Advanced Mathematical Logic www.volny.cz/behounek/logic/teaching/mathlog13 Libor Běhounek, behounek@cs.cas.cz Lecture #1, October 15, 2013 Organizational matters Study materials will be posted

More information

Solving Constrained Horn Clauses using Interpolation

Solving Constrained Horn Clauses using Interpolation Solving Constrained Horn Clauses using Interpolation MSR-TR-2013-6 Kenneth L. McMillan Micrsoft Research Andrey Rybalchenko Technische Universität München Abstract We present an interpolation-based method

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

Recursion in Coalgebras

Recursion in Coalgebras Recursion in Coalgebras Mauro Jaskelioff mjj@cs.nott.ac.uk School of Computer Science & IT FoP Away Day 2007 Outline Brief overview of coalgebras. The problem of divergence when considering unguarded recursion.

More information

Hoare Logic: Reasoning About Imperative Programs

Hoare Logic: Reasoning About Imperative Programs Hoare Logic: Reasoning About Imperative Programs COMP1600 / COMP6260 Dirk Pattinson Australian National University Semester 2, 2018 Programming Paradigms Functional. (Haskell, SML, OCaml,... ) main paradigm:

More information

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages )

Formal Methods Lecture 6. (B. Pierce's slides for the book Types and Programming Languages ) Formal Methods Lecture 6 (B. Pierce's slides for the book Types and Programming Languages ) Programming in the Lambda-Calculus, Continued Testing booleans Recall: tru = λt. λf. t fls = λt. λf. f We showed

More information

Minimal logic for computable functionals

Minimal logic for computable functionals Minimal logic for computable functionals Helmut Schwichtenberg Mathematisches Institut der Universität München Contents 1. Partial continuous functionals 2. Total and structure-total functionals 3. Terms;

More information

Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems

Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems Rocco De Nicola IMT Institute for Advanced Studies, Lucca rocco.denicola@imtlucca.it June 2013 Lesson 10 R. De Nicola

More information