Modular Bisimulation Theory for Computations and Values
|
|
- Primrose Watts
- 5 years ago
- Views:
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 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 informationRooted 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 informationOperational 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 informationLogic 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 informationSOS 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 informationBialgebraic 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 informationDenotational 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 informationDeriving 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 informationMAKING 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 informationMulticore 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 informationStreams 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 informationStructural 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 informationA 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 informationStructural 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 informationTutorial 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 informationA 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 informationCS411 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 informationClassical 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 informationEquations, 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 informationHANDLING 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 informationA 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 informationFormal 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 informationDynamic 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 informationDeclarative 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 informationA 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 informationLists, 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 informationEDA045F: 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 informationLecture 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 informationSpecification 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 informationRelative 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 informationMathematical 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 informationDenotational 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 informationSemantics 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 informationPrinciples 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 informationA 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 informationSemantics 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 informationHANDLING 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 informationON 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 informationRealizability 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 informationLecture 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 informationA 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 informationProgram 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 informationRealization 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 informationAn 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 informationSafety 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 informationNotes 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 informationFirst 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 informationDipartimento 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 informationConstructors - 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 informationThe 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 informationSoftware 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 informationSymbolic 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 informationLimitations 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 informationAtomicity 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 informationLaws 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 informationLecture 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 informationarxiv: 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 informationSoftwaretechnik. 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 informationHow 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 informationCS 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 informationSoftwaretechnik. 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 informationProgramming 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 informationAn 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 informationProposition 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 informationHoare 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 informationFormalizing 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 informationThe 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 informationA 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 informationUniversitä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 informationInducing 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 informationRelating 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 informationProgramming 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 informationBilateral 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 informationFormal 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 informationOperationally-Based Theories of Program Equivalence
Operationally-Based Theories of Program Equivalence Andrew Pitts Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 241 2 Contextual Equivalence : : : : : : : : : : : : : :
More informationLinearity 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 informationIsomorphism 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 informationStructural 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 informationCommunication 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 informationSupplementary 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 informationCorrespondence 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 informationIt 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 informationA 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 informationG54FOP: 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 informationCOMPUTER 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 informationModel 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 informationA 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 informationStreams 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 informationSelf-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 informationESE601: 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 informationMaking 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 informationConcurrent 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 information185.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 informationSolving 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 informationCS422 - 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 informationRecursion 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 informationHoare 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 informationFormal 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 informationMinimal 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 informationFormal 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