Privacy and Computer Science (ECI 2015) Day 3 - Non Interference Analyzes
|
|
- Sherman Bryan
- 6 years ago
- Views:
Transcription
1 Privacy and Computer Science (ECI 2015) Day 3 - Non Interference Analyzes F. Prost Frederic.Prost@ens-lyon.fr Ecole Normale Supérieure de Lyon July 2015 F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
2 Data Privacy from a programming point of view From a programming point of view the question of privacy becomes: how can we prove/certify that a program does not reveal secret information to the public space? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
3 Data Privacy from a programming point of view From a programming point of view the question of privacy becomes: how can we prove/certify that a program does not reveal secret information to the public space? It is an instance of the more general problem of non-interference: x, y do not interfere in P if any modification on the value of x can not be observed on y. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
4 Data Privacy from a programming point of view From a programming point of view the question of privacy becomes: how can we prove/certify that a program does not reveal secret information to the public space? It is an instance of the more general problem of non-interference: x, y do not interfere in P if any modification on the value of x can not be observed on y. Non-Interference is a very general problem: Proof-theory: useless hypotheses. Non-computational content of proofs: extraction of programs throught the Curry-Howard correspondance. Parallelism. Strictness analyzis. etc. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
5 Non-interferenceS analyzes NI analyzis depends very much on the semantics and programming paradigm in use. F. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
6 Non-interferenceS analyzes NI analyzis depends very much on the semantics and programming paradigm in use. = How do we model the fact that two programs are equivalent? = What is the exact nature or quality of observations? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
7 Non-interferenceS analyzes NI analyzis depends very much on the semantics and programming paradigm in use. = How do we model the fact that two programs are equivalent? = What is the exact nature or quality of observations? It is a very strict approach to privacy: for instance a password check is an intereference. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
8 Non-interferenceS analyzes NI analyzis depends very much on the semantics and programming paradigm in use. = How do we model the fact that two programs are equivalent? = What is the exact nature or quality of observations? It is a very strict approach to privacy: for instance a password check is an intereference. = Can we define policies allowing such interferences? Non-Interference is a yes/no approach. = Can we quantify the amount of information released? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
9 NI in a Purely Functional Setting Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
10 NI in a Purely Functional Setting Pure Terms and Simple Types Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
11 NI in a Purely Functional Setting Pure Terms and Simple Types Dependencies in pure λ-calculus [Abadi et al., 1996] What parts of a term contributes to the final result? Suppose a v, what can be removed from a while still having a term reducing to v? Pure λ-terms: Prefixes: t ::= x λx.t (t 1 t 2 ) p ::= x λx.p (p 1 p 2 ) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
12 NI in a Purely Functional Setting Pure Terms and Simple Types Prefix order Let a, b be prefixes: a b if a can be produced by b replacing some subterms with. Example: (λx.(t ) ) (λx.(t u) v) The question is: how behaves wrt β-reduction? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
13 NI in a Purely Functional Setting Pure Terms and Simple Types Two results about Théorème (Monotonicity) t u t u F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
14 NI in a Purely Functional Setting Pure Terms and Simple Types Two results about Théorème (Monotonicity) t u t u Théorème (Stability) If a v, and v is in normal form, there is a minimal prefix a 0 a such that a 0 v. The minimal prefix is the mathematical solution of the non-interference computattion: how can it be effectively computed? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
15 NI in a Purely Functional Setting Pure Terms and Simple Types Labeled terms Extension of the pure λ-calculus: l ::= x λx.l (l 1 l 2 ) e : l We add the reduction rule: (e : l 1 l 2 ) e : (l1 l2) which makes possible the usual β-reduction : (e 0 : [λx.(x x)] e 1 : y) e 0 : (λx.(x x) e 1 : y) e 0 : (e 1 : y e 1 : y) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non InterferenceJuly Analyzes / 73
16 NI in a Purely Functional Setting Pure Terms and Simple Types Minimal prefix computation 1 Attribute a unique label to each subterm of a. 2 If a has nf v, we write L(a), the set of all labels occuring in v. 3 Define G(a) as the one obtained by replacing each subterm of a whom the label is not in L(a) by. (e f : (λx.e 5 : 5) e t : t) e f : (λx.e 5 : 5 e t : t) e f : e 5 : 5 Hence t does not interfere with the rest of the program. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
17 NI in a Purely Functional Setting Pure Terms and Simple Types NI in a typed setting [Berardi, 1996] How to statically compute the minimum prefix? The problem in its whole generality undecidable F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
18 NI in a Purely Functional Setting Pure Terms and Simple Types NI in a typed setting [Berardi, 1996] How to statically compute the minimum prefix? The problem in its whole generality undecidable Easy reduction to the halting problem. Is it possible to statically approximate the result? = yes with a surprising use of types in the simply typed λ-calculus.. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
19 NI in a Purely Functional Setting Pure Terms and Simple Types Dependancies in simply-typed λ-calculus Simply typed λ-calculus with base type N and constants S : N N and 0 : N. Introduction of a constant, only term of type U. Definition of an order relation w.r.t.. two terms t 1, t 2 : A are observationnelly equivalents iff: C[. A ] : N, C[t 1 ] = β C[t 2 ] F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
20 NI in a Purely Functional Setting Pure Terms and Simple Types Dead code in simply typed λ-calculus Théorème ([Berardi, 1996]) If t, t : A and t t then t and t are obervationnaly equivalent.. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
21 NI in a Purely Functional Setting Pure Terms and Simple Types Dead code in simply typed λ-calculus Théorème ([Berardi, 1996]) If t, t : A and t t then t and t are obervationnaly equivalent. Proof. If A = N then by subject reduction, strong normalization and monotonicity we have t v and t v with v v, but closed nf of type N are either 0 or (S... (S 0)...), hence v v. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
22 NI in a Purely Functional Setting Pure Terms and Simple Types Dead code in simply typed λ-calculus Théorème ([Berardi, 1996]) If t, t : A and t t then t and t are obervationnaly equivalent. Proof. If A = N then by subject reduction, strong normalization and monotonicity we have t v and t v with v v, but closed nf of type N are either 0 or (S... (S 0)...), hence v v. For any other type A take any closing context C[. A ] : N. Then C[t] C[t ], and C[t], C[t ] : N, hence we can apply the previous reasonning. An example: (λx : U.5 ) (λx : N.5 t) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
23 NI in a Purely Functional Setting Pure Terms and Simple Types Problems linked with the unicity of typing Type unicity + Conservative approximation = less accurate analyzis t = (λf : N N.(g f (f 5)) λx : N.4) We would like to type tye first occurrence of f with N N and the second one with U N. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
24 NI in a Purely Functional Setting Higher-order Types Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
25 NI in a Purely Functional Setting Higher-order Types Variable sorts A is a type is a judgment: Γ A : We introduce judgments of the form: Γ A : α where α is a sort variable ranging over,. The two different s are used to denote separated universes. We add axiom i : for i {, } F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
26 NI in a Purely Functional Setting Higher-order Types Sort abstraction Abstracting sorts w.r.t. terms: sort application: Γ, α :, Γ t : B Γ, Γ ok Γ, Γ (λα :.t) : (Πα:.B) Γ t : (Πα:.A) Γ k : Γ (t k) : A[α := k] F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
27 NI in a Purely Functional Setting Higher-order Types Examples N α def = ΠX :α.x (X X ) X n α def = λx : α.λx : X.λf : X X. n {}}{ ( f... (f x)...) α :, β :, y : N α 5 β : N β α :, β : λy : N α.5 β : (N α N β ) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
28 NI in a Purely Functional Setting Higher-order Types k-types, k-constants k-type: Type where the only occuring sort is k. Example of -type: ΠX :.ΠY :.X Y (ΠZ :.Z X ) For all k-type A, we define a constant d A of type A. We define an order k w.r.t. k-constants: (λx : N.5 d N ) (λx : N.5 t) if t is of type N, for instance. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
29 NI in a Purely Functional Setting Higher-order Types Non-interference and types A first result: Theorem (Non-interference) Let x : A t : B, A a -type, B a -type then for all <> t 1, t 2 : A one has: t[x := t 1 ] = obs t[x := t 2 ] A corollary: Theorem (Dead-code) If <> t 1, t 2 : A, and A a -type, and t 1 t 2, then t 1 = obs t 2 F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
30 NI in a Purely Functional Setting Higher-order Types Example 1 Let t be such that <> t : N, then terms t 1 = (λy : N.5 t), t 2 = (λy : N.5 d N ) are both of type N. t 2 t 1. Then from theorem 2, we conclude t 1 = obs t 2. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
31 NI in a Purely Functional Setting Higher-order Types Example 2 The ability to abstract over sorts introduces flexibility : t = ( λf : Πα, β :.N α N β (g (f ) ((f ) t ) λα, β :.λx : N α.5 β ) with g of type (N N ) N N, and t of type N. t is of type N, and t analyzed as dead-code. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
32 NI in a Purely Functional Setting Higher-order Types The λ-cube [Barendregt, 1991] Terms: T ::= V C (T T ) λv : T.T ΠV :T.T Parameters: S: sorts, A, axioms of the form c : s, R, rules of the form (s 1, s 2, s 3 ). We write (s 1, s 2 ) when s 3 = s 2. Rules define valid product: Γ A : s 1 Γ, x : A B : s 2 Γ Πx :A.B : s 3 Computation rule: (λx : A.B C) β B[x := C] F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
33 NI in a Purely Functional Setting Higher-order Types The λ-cube Take sorts: {, }, and axiom ( : ). We consider only rules of the form (s 1, s 2 ). We have four possible rules: {(, ), (, ), (, ), (, )} F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
34 NI in a Purely Functional Setting Higher-order Types Intuitions behind rules (, ): simply typed λ-calculus. (, ): polymorphism. (, ): possiblity to build connective. (, ): dependent types. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
35 NI in a Purely Functional Setting Higher-order Types λω λ2 λω λ (, ) (, ) λc λp2 λpω λp System λ Historical name Simply typed λ-calculus [Church, 1940] λ2 System F [Girard, 1972] λp AUT-QE; LF [Bruijn, 1970] λp2 [Longo and Moggi, 1988] λω POLYREC [de Lavalette, 1992] λω F ω [Girard, 1972] λc Calculus of Constructions [Coquand and Huet, 1988] (, ) λ-cube [Barendregt, 1991] F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
36 NI in a Purely Functional Setting Higher-order Types Sort abstraction in cube style Addition of sort: ; Addition of axiom: : ; Addition of rule: (, ); Γ : Γ, α : A : Γ (Πα:.A) : F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
37 NI in a Purely Functional Setting Higher-order Types (, ) (, ) (, ) (, ) λω λ2 λc λp2 Hyper λ-cube λωe λ2e λce λp2e λω λ λpω λp λωe λ E λpωe λpe F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
38 NI in a Purely Functional Setting Higher-order Types Results It is possible to prove theorems 1 and 2 in the E-cube: a non-interference result for the Calculus of Constructions. The rule (, ) expresses the logical content of type-based analyses. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
39 NI in a Purely Functional Setting Higher-order Types Technical considerations Original formalism has been extended in order to have judgments like x : X : α : where x, X, α are variables. In λα :.A, α is a weak variable, i.e. it stands either for or. The work done is of theoretical nature. Hint for an algorithm: ML unification modified (not complete). F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
40 NI in an Imperative Setting Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
41 NI in an Imperative Setting Interferences in imperative programs [Volpano and Smith, 1997] Programs input and output are classified at different security levels. We would like to allow the information to go up but never down w.r.t. security levels. The security can be expressed by comparing the memory of the computer regarding the different levels of security (different from the functional approach in which there are no variables). Simple imperative programming language with procedures. Type soundness result: if a program is well typed, then non-interference is enforced. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
42 NI in an Imperative Setting Some Information Leaking Programs and Non-Termination for i = 0 to secret output i on public_channel F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
43 NI in an Imperative Setting Some Information Leaking Programs and Non-Termination for i = 0 to secret output i on public_channel for i = 0 to secret output i on public_channel while true do skip F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
44 NI in an Imperative Setting Some Information Leaking Programs and Non-Termination for i = 0 to secret output i on public_channel for i = 0 to secret output i on public_channel while true do skip for i = 0 to maxnat { output i on public_channel if (i = secret) then (while true do skip) } F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
45 NI in an Imperative Setting Types in the Smith-Volpano System Three kinds of types τ-types: security levels. π-types: expressions and commands. ρ-types: types of phrases. For instance τ {h, l} with l h. command types have form τ cmd. A command of type h cmd says it does not contain assignment to low variables. Phrase types are of the form τ var or τ acc The subtype relation is contravariant in command and acceptor types. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
46 NI in an Imperative Setting Information flow Direct information flow: l:=h F. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
47 NI in an Imperative Setting Information flow Direct information flow: l:=h Indirect information flow While h>0 do l:=l+1; h:=h-1; od. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
48 NI in an Imperative Setting Information flow Direct information flow: l:=h Indirect information flow While h>0 do l:=l+1; h:=h-1; od We must have typing rules forbidding such programs: γ e : τ γ c : τ cmd γ while e do c : τcmd. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
49 NI in an Imperative Setting Type Soundnes and Non-Interference One needs to define the operational semantics of the programming language: µ c = µ One needs to define a notion of equivalent memories µ l ν if µ and ν agree on the value of low-level variables. The non-interference property can be stated as: suppose that λ c : π suppose that µ c = µ suppose that ν c = ν suppose that µ τ ν τ λ then ν (l) = µ (l) for all l such that λ(l) τ. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
50 NI and concurrency Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
51 NI and concurrency Process interlock and information leakage α [c α = 0 SPY := 0 ; c β := 0]; θ F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
52 NI and concurrency Process interlock and information leakage α β [c α = 0 SPY := 0 ; c β := 0]; θ [c β = 0 SPY := 1 ; c α := 0]; θ F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
53 NI and concurrency Process interlock and information leakage α β [c α = 0 SPY := 0 ; c β := 0]; θ [c β = 0 SPY := 1 ; c α := 0]; θ γ ( [PIN = 1 c α := 0]; θ ) + ( [PIN = 0 cβ := 0]; θ ) α β γ F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
54 NI and concurrency λ ar [Prost, 2005]: λ-calculus with adressed resources Variation of the blue-calculus of G. Boudol (variant of Milner s polyadic π-calculus). Terms: t ::= x, a (t t) λx.t t t νa(t) (t s) (s t) Adressed ressources : s ::= a t a = t (s s) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
55 NI and concurrency Operational Semantics Definition (Reduction rules) (λx.t u) β t{x := u} t a u ρ t{a := u} Communication example: a λx.t (a v) ρ (λx.t v) β t{x := v} F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
56 NI and concurrency λ ar Typing It is possible to have a fine-grained typing of λ ar : [PPAR] Γ t : τ Γ u : σ (τ, σ ) Γ t u : Pa(τ, σ) Sort abstraction à la [Prost00] leads to similar result than in λ-calculus. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
57 Relaxing Non-Interference Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
58 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
59 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
60 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
61 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; etc. Challenge: to adapt non-interference to fit with dynamic evolution of privacy? F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
62 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; etc. Challenge: to adapt non-interference to fit with dynamic evolution of privacy? In our framework we propose: 1 A security profile for each operator: rewrite rules over privacy lattice. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
63 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; etc. Challenge: to adapt non-interference to fit with dynamic evolution of privacy? In our framework we propose: 1 A security profile for each operator: rewrite rules over privacy lattice. 2 Rewrite rules may have actions modifying the policy. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
64 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; etc. Challenge: to adapt non-interference to fit with dynamic evolution of privacy? In our framework we propose: 1 A security profile for each operator: rewrite rules over privacy lattice. 2 Rewrite rules may have actions modifying the policy. 3 Definition of high/low bisimulation with dynamic policies. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
65 Relaxing Non-Interference Non-Interference Dynamic policies [Prost, 2011] A lot of every-day life scenarios involve dynamic evolution of data privacy levels. Pay-per-view; Sealed auctions; etc. Challenge: to adapt non-interference to fit with dynamic evolution of privacy? In our framework we propose: 1 A security profile for each operator: rewrite rules over privacy lattice. 2 Rewrite rules may have actions modifying the policy. 3 Definition of high/low bisimulation with dynamic policies. 4 Program safety verification by abstract execution on privacy levels. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
66 Relaxing Non-Interference Programming framework Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
67 Relaxing Non-Interference Programming framework WHILE programming language Minimalistic programming language: v ::= x t, b ::= v f (x 1,..., x n ) P ::= x := t P; P if b then P else P while b do P skip It can be seen as an intermediate language: x := f (345, g(x 1, x 2 )) (x 0 := 345; x 3 := g(x 2, x 3 ); x := f (x 3 ) Natural semantics µ, P os µ, P F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
68 Relaxing Non-Interference Dynamic interference policy Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
69 Relaxing Non-Interference Dynamic interference policy Interference policy Program variables are attributed privacy levels. Privacy levels are elements of a lattice L. Interference policies are based on authorised behavior of operators. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
70 Relaxing Non-Interference Dynamic interference policy Interference policy Program variables are attributed privacy levels. Privacy levels are elements of a lattice L. Interference policies are based on authorised behavior of operators. Usually it is done through types but it is too rigid. = We use term rewriting system on privacy levels in order to deal with concrete privacy levels used at evaluation time. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
71 Relaxing Non-Interference Dynamic interference policy Static interference policy For each operator f we consider f DIP. Σ DIP = (V DIP, V Ω DIP L) Encryption policy, SP: encrypt DIP (π 128, x) π 1 encrypt DIP (π 256, x) SPY DIP PIN DIP... In the program: SPY := encrypt(k, PIN) The security level of encrypt(k, PIN) is computed using rules of SP. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
72 Relaxing Non-Interference Dynamic interference policy Dynamicity Privacy levels may change during computation. Rewriting rules with actions : l r; a a ::= x π x π x y x y a; a The interference policy changes through the evaluation of operator security level computation: t[σ(l)], SP t[σ(r)], SP F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
73 Relaxing Non-Interference Dynamic interference policy Three strikes, out Aim: account suspended after 3 unsuccessful login attempts. In the program: ckpwd(g, pwd) For each operator f of arity n we consider f DIP of arity 2n. = distinction between the name of a program variable and its privacy level. Privacy level of ckpwd(g, pwd) is computed by the evaluation of: ckpwd DIP (π g, g, π pwd, pwd) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
74 Relaxing Non-Interference Dynamic interference policy Three strikes, out t 0 t 1 t 2 t 3 ckpwd(, g, t 0, p) ; p t 1 ckpwd(, g, t 1, p) ; p t 2 ckpwd(, g, t 2, p) ; p t 3 ckpwd(, (g, t 3, p) ckok(x, y) ; y t 0 g PIN 1 t 0 PIN 2 t 0... F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
75 Relaxing Non-Interference Dynamic interference policy Three strikes, out t 0 t 1 t 2 t 3 ckpwd(, g, t 0, p) ; p t 1 ckpwd(, g, t 1, p) ; p t 2 ckpwd(, g, t 2, p) ; p t 3 ckpwd(, (g, t 3, p) ckok(x, y) ; y t 0 g PIN 1 t 0 PIN 2 t 0... In the program: if ckpwd(g, PIN 1 ) then blah else next try F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
76 Relaxing Non-Interference Dynamic interference policy Dynamic interference policy Definition A DIP, SP, is a confluent terminating rewrite system with actions with: 1 For every x V there is a rule x π in SP. 2 For each rule l r such that l is in V then r is in L. 3 SP introduces no junk into L. I.e., for all ground terms, t, over Σ L, the normal form of t, is in L. 4 SP introduces no confusion into L. I.e., τ 1, τ 2 L, τ 1 τ 2 = τ 1 τ 2. 5 functions in Σ are monotonic w.r.t. privacy levels: π i, π i L, π i = nf SP (f (π 1,..., π n )) nf SP (f (π 1,..., π n)). π i t, SP π SP (t), SP t F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
77 Relaxing Non-Interference Dynamic interference policy Privacy level of a term wrt SP to compute the privacy level of f (x, y) we consider t = f DIP (nf SP (x), x, nf SP (y), y) The evaluation of this term in SP gives the privacy level and a new interference policy: t, SP π SP (t), SP t F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
78 Relaxing Non-Interference Program safety w.r.t. DIP Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
79 Relaxing Non-Interference Program safety w.r.t. DIP Program safety Traditionally: a program is safe if every modification of a value above π cannot be observed below π: µ 1, P os µ 1 µ 2, P os µ 2 µ 1 π µ 2 What to do with the policy: making possible program as: encrypt(π 1024, ) SPY := encrypt(key 1024, PIN) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
80 Relaxing Non-Interference Program safety w.r.t. DIP Program safety Traditionally: a program is safe if every modification of a value above π cannot be observed below π: µ 1, P os µ 1 µ 2, P os µ 2 µ 1 π µ 2 What to do with the policy: making possible program as: encrypt(π 1024, ) SPY := encrypt(key 1024, PIN) = Use an alternate op. sem. declared leaks are treated specifically. Notion of declassified operational semantics. µ 1, P µ d = µ 1, P F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
81 Relaxing Non-Interference Program safety w.r.t. DIP declassifying terms A term is declassifying if its privacy level is lower than one of its arguments. Such terms will be subjected to specific rules in the declassified operational semantics. Definition (Declassifying terms and assignments) t = f (x 1,..., x n ) is declassifying wrt SP, written SP f (x 1,..., x n ) if: π SP (t) ( n i=1 πsp (t i )) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
82 Relaxing Non-Interference Program safety w.r.t. DIP Declassified evaluation P, µ µ d = P, µ, SP Declassifying assignment: SP f DIP ((π SP (x), x) [[f (x)]]µ d = v f (π SP (x), x), SP π, SP f (πsp (x),x) y := f (x), µ, SP µ AS d = skip, µ[y := v], SP f (πsp (x),x) F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
83 Relaxing Non-Interference Program safety w.r.t. DIP High/low bisimulation and DIPs Definition (Bisimulation) A π-bisimulation is a symetric relation R such that: If P 1, SP 1 R P 2, SP 2 and µ 1, P 1, SP 1 µ 1 = µ 1, P 1, SP 1 and µ 1 SP 1 SP 2 π µ 2. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
84 Relaxing Non-Interference Program safety w.r.t. DIP High/low bisimulation and DIPs Definition (Bisimulation) A π-bisimulation is a symetric relation R such that: If P 1, SP 1 R P 2, SP 2 and µ 1, P 1, SP 1 µ 1 = µ 1, P 1, SP 1 = and µ 1 SP 1 SP 2 π µ 2 P 2, SP 2 and µ 2 s.t. µ 2, P 2, SP 2 µ 1 = µ 2, P 2, SP 2 and µ 1 SP 1 SP 2 π µ 2 and P 1, SP 1 R P 2, SP 2. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
85 Relaxing Non-Interference Program safety w.r.t. DIP Program safety w.r.t. a DIP The union of two π-bisimulation is a π-bisimulation. The biggest π-bisimulation is written and is the union of all π-bisimulation. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
86 Relaxing Non-Interference Program safety w.r.t. DIP Program safety w.r.t. a DIP The union of two π-bisimulation is a π-bisimulation. The biggest π-bisimulation is written and is the union of all π-bisimulation. Definition (Safe program) A program P is safe with relation DIP SP, written SP = P, if for all privacy level π P, SP π P, SP. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
87 Relaxing Non-Interference Program Verification Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
88 Relaxing Non-Interference Program Verification Abstract execution principle (1) F. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
89 Relaxing Non-Interference Program Verification Abstract execution principle (1) Idea: to execute the program on L. An abstract memory record associates variables with their privacy levels. F. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
90 Relaxing Non-Interference Program Verification Abstract execution principle (1) Idea: to execute the program on L. An abstract memory record associates variables with their privacy levels. Record of the highest privacy level encountered in if-then-else and while guards to avoid indirect leaks, e.g.: if PIN = 0 then while 0 do skip else skip; SPY := 0 Check assignments wrt SP and : x := f (...) implies π SP (x) (π SP (f (...)) π g ) raises a failure if the inequality is not satisfied.. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
91 Relaxing Non-Interference Program Verification Abstract execution principle (2) Moreover evaluation of terms modify the DIP. Problem: it is not possible to merge DIPs resulting from the branches of an if-then-else construct. F. Prost (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
92 Relaxing Non-Interference Program Verification Abstract execution principle (2) Moreover evaluation of terms modify the DIP. Problem: it is not possible to merge DIPs resulting from the branches of an if-then-else construct. = Creation of a DIP list recording DIP s for each execution paths. Fixpoint problem for the while construct.. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
93 Relaxing Non-Interference Program Verification Abstract execution principle (2) Moreover evaluation of terms modify the DIP. Problem: it is not possible to merge DIPs resulting from the branches of an if-then-else construct. = Creation of a DIP list recording DIP s for each execution paths. Fixpoint problem for the while construct. = Finite number of DIP lists.. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
94 Relaxing Non-Interference Program Verification Abstract execution result Theorem L.( { SP, }, P L) = SP = P F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
95 Relaxing Non-Interference Program Verification Abstract execution result Theorem L.( { SP, }, P L) = SP = P Converse implication does not hold: if PIN = 0 then SPY := 1 else SPY := 1 this safe program raises a failure in the abstract operational semantics. F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
96 Conclusion Plan 1 NI in a Purely Functional Setting Pure Terms and Simple Types Higher-order Types 2 NI in an Imperative Setting 3 NI and concurrency 4 Relaxing Non-Interference Programming framework Dynamic interference policy Program safety w.r.t. DIP Program Verification 5 Conclusion F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
97 Conclusion Conclusion Non-Interference is a very abstract and powerful, but strict, approach to privacy in programming languages. It is very different from the traditional cryptographic approach and relies on completely different techniques: programming semantics. There has been a lot of work in order to cope with different paradigms and subtle variations around the notion of strict non-interference. Differential privacy is a relatively new way to approach non-interference. In a nutshell : the idea is to manipulate data of a data-base in such a way that statistical properties of interest are unchanged while having indistinguishability properties (kind of non-interference) insuring the privacy (e.g. [Dwork, 2008]). F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
98 Conclusion Bibliography I Abadi, M., Lampson, B. W., and Lévy, J. (1996). Analysis and caching of dependencies. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming (ICFP 96), Philadelphia, Pennsylvania, May 24-26, 1996., pages Askarov, A., Hunt, S., Sabelfeld, A., and Sands, D. (2008). Termination-insensitive noninterference leaks more than just a bit. In Computer Security - ESORICS 2008, 13th European Symposium on Research in Computer Security, Málaga, Spain, October 6-8, Proceedings, pages Barendregt, H. (1991). Introduction to generalized type systems. J. Funct. Program., 1(2): F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
99 Conclusion Bibliography II Berardi, S. (1996). Pruning simply typed lambda-terms. J. Log. Comput., 6(5): Bruijn, N. G. D. (1970). The mathematical language AUTOMATH, its usage and some of its extensions (iria, versailles 1968). In Symposium on automatic demonstration, volume 125 of Lecture Notes in Mathematics, pages Springer-Verlag. Church, A. (1940). A formulation of the simple theory of types. Journal of Symbolic Logic, 5(1). F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
100 Conclusion Bibliography III Coquand, T. and Huet, G. (1988). The calculus of constructions. Information and Computation, 76: de Lavalette, G. R. (1992). Strictness analysis via abstract interpretation for recursively defined types. Information and Computation, 99(2): Dwork, C. (2008). Differential privacy: A survey of results. In Theory and Applications of Models of Computation, 5th International Conference, TAMC 2008, Xi an, China, April 25-29, Proceedings, pages F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
101 Conclusion Bibliography IV Girard, J.-Y. (1972). Interprétation fonctionnelle et élimination des coupures de l arithmétique d ordre supérieur. PhD thesis, Université Paris 7. Longo, G. and Moggi, E. (1988). Constructive natural deduction and its modest interpretation. Technical Report CMU-CS , Carneghie Mellon University. Prost, F. (2000). A static calculus of dependencies for the lambda-cube. In 15th Annual IEEE Symposium on Logic in Computer Science, Santa Barbara, California, USA, June 26-29, 2000, pages F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
102 Conclusion Bibliography V Prost, F. (2005). Sort abstraction for static analyzes of mobile processes. In Sixth Symposium on Trends in Functional Programming (TFP 2005), Tallinn, Estonia. Prost, F. (2011). Enforcing dynamic interference policy. In PASSAT/SocialCom 2011, Privacy, Security, Risk and Trust (PASSAT), 2011 IEEE Third International Conference on and 2011 IEEE Third International Conference on Social Computing (SocialCom), Boston, MA, USA, 9-11 Oct., 2011, pages Sabelfeld, A. and Sands, D. (2009). Declassification: Dimensions and principles. Journal of Computer Security, 17(5): F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
103 Conclusion Bibliography VI Volpano, D. M. and Smith, G. (1997). A type-based approach to program security. In TAPSOFT 97: Theory and Practice of Software Development, 7th International Joint Conference CAAP/FASE, Lille, France, April 14-18, 1997, Proceedings, pages F. Prost Frederic.Prost@ens-lyon.fr (Ecole Privacy Normale and Supérieure Computer Science de Lyon) (ECI 2015) Day 3 - Non Interference July Analyzes / 73
Fast Probabilistic Simulation, Nontermination, and Secure Information Flow
Fast Probabilistic Simulation, Nontermination, and Secure Information Flow Geoffrey Smith Rafael Alpízar Florida International University {smithg,ralpi00}@cis.fiu.edu Abstract In secure information flow
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 informationA Cryptographic Decentralized Label Model
A Cryptographic Decentralized Label Model Jeffrey A. Vaughan and Steve Zdancewic Department of Computer and Information Science University of Pennsylvania IEEE Security and Privacy May 22, 2007 Information
More informationStatic Program Analysis using Abstract Interpretation
Static Program Analysis using Abstract Interpretation Introduction Static Program Analysis Static program analysis consists of automatically discovering properties of a program that hold for all possible
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 informationReview of The π-calculus: A Theory of Mobile Processes
Review of The π-calculus: A Theory of Mobile Processes Riccardo Pucella Department of Computer Science Cornell University July 8, 2001 Introduction With the rise of computer networks in the past decades,
More informationSubtyping and Intersection Types Revisited
Subtyping and Intersection Types Revisited Frank Pfenning Carnegie Mellon University International Conference on Functional Programming (ICFP 07) Freiburg, Germany, October 1-3, 2007 Joint work with Rowan
More informationTyping Noninterference for Reactive Programs
Typing Noninterference for Reactive Programs Ana Almeida Matos, Gérard Boudol and Ilaria Castellani June 7, 2004 Abstract We propose a type system to enforce the security property of noninterference in
More informationThe Calculus of Inductive Constructions
The Calculus of Inductive Constructions Hugo Herbelin 10th Oregon Programming Languages Summer School Eugene, Oregon, June 16-July 1, 2011 1 Outline - A bit of history, leading to the Calculus of Inductive
More informationSafety Analysis versus Type Inference for Partial Types
Safety Analysis versus Type Inference for Partial Types Jens Palsberg palsberg@daimi.aau.dk Michael I. Schwartzbach mis@daimi.aau.dk Computer Science Department, Aarhus University Ny Munkegade, DK-8000
More informationTypage et déduction dans le calcul de
Typage et déduction dans le calcul de réécriture Benjamin Wack Encadrants : C. Kirchner, L. Liquori Deduction and computation λ-calculus [Church 40] is a simple and powerful computational model Explicit
More informationInformation Flow Inference for ML
POPL 02 INRIA Rocquencourt Projet Cristal Francois.Pottier@inria.fr http://cristal.inria.fr/~fpottier/ Vincent.Simonet@inria.fr http://cristal.inria.fr/~simonet/ Information flow analysis account number
More informationDenotational semantics
Denotational semantics Semantics and Application to Program Verification Antoine Miné École normale supérieure, Paris year 2015 2016 Course 4 4 March 2016 Course 4 Denotational semantics Antoine Miné p.
More informationStatic Program Analysis
Static Program Analysis Xiangyu Zhang The slides are compiled from Alex Aiken s Michael D. Ernst s Sorin Lerner s A Scary Outline Type-based analysis Data-flow analysis Abstract interpretation Theorem
More informationThe Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security
The Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security Carlos Olarte and Frank D. Valencia INRIA /CNRS and LIX, Ecole Polytechnique Motivation Concurrent
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 informationType Theory and Constructive Mathematics. Type Theory and Constructive Mathematics Thierry Coquand. University of Gothenburg
Type Theory and Constructive Mathematics Type Theory and Constructive Mathematics Thierry Coquand University of Gothenburg Content An introduction to Voevodsky s Univalent Foundations of Mathematics The
More informationLecture Notes on Combinatory Modal Logic
Lecture Notes on Combinatory Modal Logic 15-816: Modal Logic Frank Pfenning Lecture 9 February 16, 2010 1 Introduction The connection between proofs and program so far has been through a proof term assignment
More informationIntroduction to Type Theory February 2008 Alpha Lernet Summer School Piriapolis, Uruguay. Herman Geuvers Nijmegen & Eindhoven, NL
Introduction to Type Theory February 2008 Alpha Lernet Summer School Piriapolis, Uruguay Herman Geuvers Nijmegen & Eindhoven, NL Lecture 5: Higher Order Logic and the Calculus of Constructions 1 Church
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 informationDecidable Subsets of CCS
Decidable Subsets of CCS based on the paper with the same title by Christensen, Hirshfeld and Moller from 1994 Sven Dziadek Abstract Process algebra is a very interesting framework for describing and analyzing
More informationNICTA Advanced Course. Theorem Proving Principles, Techniques, Applications
NICTA Advanced Course Theorem Proving Principles, Techniques, Applications λ 1 CONTENT Intro & motivation, getting started with Isabelle Foundations & Principles Lambda Calculus Higher Order Logic, natural
More informationA Logic for Information Flow Analysis with an Application to Forward Slicing of Simple Imperative Programs
A Logic for Information Flow Analysis with an Application to Forward Slicing of Simple Imperative Programs Torben Amtoft and Anindya Banerjee a,1,2 a Department of Computing and Information Sciences Kansas
More informationCOMP6463: λ-calculus
COMP6463: λ-calculus 1. Basics Michael Norrish Michael.Norrish@nicta.com.au Canberra Research Lab., NICTA Semester 2, 2015 Outline Introduction Lambda Calculus Terms Alpha Equivalence Substitution Dynamics
More informationNon-Idempotent Typing Operators, beyond the λ-calculus
Non-Idempotent Typing Operators, beyond the λ-calculus Soutenance de thèse Pierre VIAL IRIF (Univ. Paris Diderot and CNRS) December 7, 2017 Non-idempotent typing operators P. Vial 0 1 /46 Certification
More informationNon deterministic classical logic: the λµ ++ -calculus
Paru dans : Mathematical Logic Quarterly, 48, pp. 357-366, 2002 Non deterministic classical logic: the λµ ++ -calculus Karim NOUR LAMA - Equipe de Logique, Université de Savoie 73376 Le Bourget du Lac
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 17 Tuesday, April 2, 2013 1 There is a strong connection between types in programming languages and propositions
More informationAdvanced Lambda Calculus. Henk Barendregt & Giulio Manzonetto ICIS Faculty of Science Radboud University Nijmegen, The Netherlands
Advanced Lambda Calculus Henk Barendregt & Giulio Manzonetto ICIS Faculty of Science Radboud University Nijmegen, The Netherlands Form of the course Ordinary lecture Seminar form Exam: working out an exercise
More informationAn Independence Relation for Sets of Secrets
Sara Miner More Pavel Naumov An Independence Relation for Sets of Secrets Abstract. A relation between two secrets, known in the literature as nondeducibility, was originally introduced by Sutherland.
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 informationLecture Notes on Intuitionistic Kripke Semantics
Lecture Notes on Intuitionistic Kripke Semantics 15-816: Modal Logic Frank Pfenning Lecture 15 March 18, 2010 1 Introduction In this lecture we present an intuitionistic approach to describing a multipleworld
More informationBeyond First-Order Logic
Beyond First-Order Logic Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) Beyond First-Order Logic MFES 2008/09 1 / 37 FOL
More informationCommand = Value Context. Hans-Dieter Hiep. 15th of June, /17
1/17 Command = Value Context Hans-Dieter Hiep 15th of June, 2018 2/17 Example Consider a total functional programming language. swap :: A B B A swap (a, b) = (b, a) paws :: A B B A paws a = a paws b =
More informationIntersection Synchronous Logic
UnB 2007 p. 1/2 Intersection Synchronous Logic Elaine Gouvêa Pimentel Simona Ronchi della Rocca Luca Roversi UFMG/UNITO, 2007 UnB 2007 p. 2/2 Outline Motivation UnB 2007 p. 2/2 Outline Motivation Intuitionistic
More informationRelating Nominal and Higher-Order Pattern Unification
Relating Nominal and Higher-Order Pattern Unification James Cheney University of Edinburgh UNIF 2005 April 22, 2005 1 Motivation Higher-order unification: studied since ca. 1970 Undecidable, infinitary,
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 informationSpace-aware data flow analysis
Space-aware data flow analysis C. Bernardeschi, G. Lettieri, L. Martini, P. Masci Dip. di Ingegneria dell Informazione, Università di Pisa, Via Diotisalvi 2, 56126 Pisa, Italy {cinzia,g.lettieri,luca.martini,paolo.masci}@iet.unipi.it
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 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 informationSimply Typed Lambda Calculus
Simply Typed Lambda Calculus Language (ver1) Lambda calculus with boolean values t ::= x variable x : T.t abstraction tt application true false boolean values if ttt conditional expression Values v ::=
More informationCS 6110 Lecture 28 Subtype Polymorphism 3 April 2013 Lecturer: Andrew Myers
CS 6110 Lecture 28 Subtype Polymorphism 3 April 2013 Lecturer: Andrew Myers 1 Introduction In this lecture, we make an attempt to extend the typed λ-calculus for it to support more advanced data structures
More informationCommunicating Parallel Processes. Stephen Brookes
Communicating Parallel Processes Stephen Brookes Carnegie Mellon University Deconstructing CSP 1 CSP sequential processes input and output as primitives named parallel composition synchronized communication
More informationPartial model checking via abstract interpretation
Partial model checking via abstract interpretation N. De Francesco, G. Lettieri, L. Martini, G. Vaglini Università di Pisa, Dipartimento di Ingegneria dell Informazione, sez. Informatica, Via Diotisalvi
More informationarxiv: v3 [cs.pl] 15 May 2011
A Step-indexed Semantic Model of Types for the Call-by-Name Lambda Calculus arxiv:1105.1985v3 [cs.pl] 15 May 2011 Abstract Step-indexed semantic models of types were proposed as an alternative to purely
More informationCOMPUTER SCIENCE TEMPORAL LOGICS NEED THEIR CLOCKS
Bulletin of the Section of Logic Volume 18/4 (1989), pp. 153 160 reedition 2006 [original edition, pp. 153 160] Ildikó Sain COMPUTER SCIENCE TEMPORAL LOGICS NEED THEIR CLOCKS In this paper we solve some
More informationA call-by-name lambda-calculus machine
A call-by-name lambda-calculus machine Jean-Louis Krivine University Paris VII, C.N.R.S. 2 place Jussieu 75251 Paris cedex 05 (krivine@pps.jussieu.fr) Introduction We present, in this paper, a particularly
More informationProgram Analysis Probably Counts
Probably Counts 1 c.hankin@imperial.ac.uk joint work with Alessandra Di Pierro 2 and Herbert Wiklicky 1 1 Department of Computing, 2 Dipartimento di Informatica, Università di Verona Computer Journal Lecture,
More informationPrivacy and Computer Science (ECI 2015) Day 4 - Zero Knowledge Proofs Mathematics
Privacy and Computer Science (ECI 2015) Day 4 - Zero Knowledge Proofs Mathematics F. Prost Frederic.Prost@ens-lyon.fr Ecole Normale Supérieure de Lyon July 2015 F. Prost Frederic.Prost@ens-lyon.fr (Ecole
More informationAn extension of HM(X) with bounded existential and universal data-types
Groupe de travail Cristal July, 2003 An extension of HM(X) with bounded existential and universal data-types (To appear at ICFP 03) Vincent Simonet INRIA Rocquencourt Cristal project Vincent.Simonet@inria.fr
More informationThe Maude-NRL Protocol Analyzer Lecture 3: Asymmetric Unification and Indistinguishability
The Maude-NRL Protocol Analyzer Lecture 3: Asymmetric Unification and Catherine Meadows Naval Research Laboratory, Washington, DC 20375 catherine.meadows@nrl.navy.mil Formal Methods for the Science of
More informationDynamic Dependency Monitoring to Secure Information Flow
Dynamic Dependency Monitoring to Secure Information Flow Paritosh Shroff Scott F. Smith Mark Thober Department of Computer Science Johns Hopkins University {pari,scott,mthober}@cs.jhu.edu Abstract Although
More informationThe Curry-Howard Isomorphism
The Curry-Howard Isomorphism Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) The Curry-Howard Isomorphism MFES 2008/09
More informationTheories of Programming Languages Assignment 5
Theories of Programming Languages Assignment 5 December 17, 2012 1. Lambda-Calculus (see Fig. 1 for initions of = β, normal order evaluation and eager evaluation). (a) Let Ω = ((λx. x x) (λx. x x)), and
More informationLanguage-based Information Security. CS252r Spring 2012
Language-based Information Security CS252r Spring 2012 This course Survey of key concepts and hot topics in language-based information security The use of programming language abstractions and techniques
More informationModel Checking & Program Analysis
Model Checking & Program Analysis Markus Müller-Olm Dortmund University Overview Introduction Model Checking Flow Analysis Some Links between MC and FA Conclusion Apology for not giving proper credit to
More informationCategories, Proofs and Programs
Categories, Proofs and Programs Samson Abramsky and Nikos Tzevelekos Lecture 4: Curry-Howard Correspondence and Cartesian Closed Categories In A Nutshell Logic Computation 555555555555555555 5 Categories
More informationStrong normalization of a symmetric lambda calculus for second order classical logic
Archive for Mathematical Logic manuscript No. (will be inserted by the editor) Strong normalization of a symmetric lambda calculus for second order classical logic YAMAGATA, yoriyuki e-mail: yoriyuki@ms.u-tokyo.ac.jp
More informationType-based complexity analysis for fork processes
Type-based complexity analysis for fork processes Emmanuel Hainry, Jean-Yves Marion, and Romain Péchoux Université de Lorraine and LORIA {emmanuel.hainry,jean-yves.marion,romain.pechoux}@loria.fr Abstract.
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 informationRealizability and Parametricity in Pure Type Systems
Realizability and Parametricity in Pure Type Systems Jean-Philippe Bernardy 1 and Marc Lasson 2 1 Chalmers University of Technology and University of Gothenburg 2 ENS Lyon, Université de Lyon, LIP (UMR
More informationA Monadic Analysis of Information Flow Security with Mutable State
A Monadic Analysis of Information Flow Security with Mutable State Karl Crary Aleksey Kliger Frank Pfenning July 2003 CMU-CS-03-164 School of Computer Science Carnegie Mellon University Pittsburgh, PA
More informationTowards information flow control. Chaire Informatique et sciences numériques Collège de France, cours du 30 mars 2011
Towards information flow control Chaire Informatique et sciences numériques Collège de France, cours du 30 mars 2011 Mandatory access controls and security levels DAC vs. MAC Discretionary access control
More information07 Equational Logic and Algebraic Reasoning
CAS 701 Fall 2004 07 Equational Logic and Algebraic Reasoning Instructor: W. M. Farmer Revised: 17 November 2004 1 What is Equational Logic? Equational logic is first-order logic restricted to languages
More informationOn the Correctness and Efficiency of the Krivine Machine
On the Correctness and Efficiency of the Krivine Machine Mitchell Wand Northeastern University Daniel P. Friedman Indiana University February 12, 2003 Abstract We provide a short derivation of the Krivine
More informationEAHyper: Satisfiability, Implication, and Equivalence Checking of Hyperproperties
EAHyper: Satisfiability, Implication, and Equivalence Checking of Hyperproperties Bernd Finkbeiner, Christopher Hahn, and Marvin Stenger Saarland Informatics Campus, Saarland University, Saarbrücken, Germany
More informationA General Technique for Analyzing Termination in Symmetric Proof Calculi
A General Technique for Analyzing Termination in Symmetric Proof Calculi Daniel J. Dougherty 1, Silvia Ghilezan 2 and Pierre Lescanne 3 1 Worcester Polytechnic Institute, USA, dd@cs.wpi.edu 2 Faculty of
More informationAlgorithmic Reasoning about Böhm Trees
Algorithmic Reasoning about Böhm Trees Luke Ong University of Oxford (Joint with Bahareh Afshari, Matthew Hague, Graham Leigh, Steven Ramsay, and Takeshi Tsukada) IMS Workshop on Higher-Order Model Checking
More informationOn Modal Logics of Partial Recursive Functions
arxiv:cs/0407031v1 [cs.lo] 12 Jul 2004 On Modal Logics of Partial Recursive Functions Pavel Naumov Computer Science Pennsylvania State University Middletown, PA 17057 naumov@psu.edu June 14, 2018 Abstract
More informationModels of computation
Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal ethods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables odels of computation
More informationRapporto di Ricerca CS
UNIVERSITÀ CA FOSCARI DI VENEZIA Dipartimento di Informatica Technical Report Series in Computer Science Rapporto di Ricerca CS-2009-6 Giugno 2009 M. Centenaro, R. Focardi, F.L. Luccio, G. Steel Type-based
More informationImplicit Computational Complexity
Implicit Computational Complexity Simone Martini Dipartimento di Scienze dell Informazione Università di Bologna Italy Bertinoro International Spring School for Graduate Studies in Computer Science, 6
More informationRealizability and Parametricty in Pure Type Systems
Realizability and Parametricty in Pure Type Systems Jean-Philippe Bernardy 1 and Marc Lasson 2 1 Chalmers University of Technology and University of Gothenburg 2 ENS Lyon, Université de Lyon, LIP (UMR
More informationAutomatic Generation of Polynomial Invariants for System Verification
Automatic Generation of Polynomial Invariants for System Verification Enric Rodríguez-Carbonell Technical University of Catalonia Talk at EPFL Nov. 2006 p.1/60 Plan of the Talk Introduction Need for program
More informationStatic Program Analysis
Static Program Analysis Lecture 16: Abstract Interpretation VI (Counterexample-Guided Abstraction Refinement) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de
More informationHoare Logic I. Introduction to Deductive Program Verification. Simple Imperative Programming Language. Hoare Logic. Meaning of Hoare Triples
Hoare Logic I Introduction to Deductive Program Verification Işıl Dillig Program Spec Deductive verifier FOL formula Theorem prover valid contingent Example specs: safety (no crashes), absence of arithmetic
More informationUniform Schemata for Proof Rules
Uniform Schemata for Proof Rules Ulrich Berger and Tie Hou Department of omputer Science, Swansea University, UK {u.berger,cshou}@swansea.ac.uk Abstract. Motivated by the desire to facilitate the implementation
More informationThe non-logical symbols determine a specific F OL language and consists of the following sets. Σ = {Σ n } n<ω
1 Preliminaries In this chapter we first give a summary of the basic notations, terminology and results which will be used in this thesis. The treatment here is reduced to a list of definitions. For the
More informationRealizing the axiom of dependent choice
Realizing the axiom of dependent choice Jean-Louis Krivine PPS Group, University Paris 7, CNRS krivine@pps.jussieu.fr Edinburgh, March 26, 2003 1 The extended Curry-Howard correspondence We want to get
More informationThe LCF Approach to Theorem Proving
The LCF Approach to Theorem Proving 1 The LCF Approach to Theorem Proving John Harrison Intel Corporation Ideas and historical context Key ideas of LCF Equational logic example More about HOL Light Programming
More informationModal Logic as a Basis for Distributed Computation
Modal Logic as a Basis for Distributed Computation Jonathan Moody 1 jwmoody@cs.cmu.edu October 2003 CMU-CS-03-194 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 1 This material
More informationGerwin Klein, June Andronick, Ramana Kumar S2/2016
COMP4161: Advanced Topics in Software Verification {} Gerwin Klein, June Andronick, Ramana Kumar S2/2016 data61.csiro.au Content Intro & motivation, getting started [1] Foundations & Principles Lambda
More informationPropositions and Proofs
Chapter 2 Propositions and Proofs The goal of this chapter is to develop the two principal notions of logic, namely propositions and proofs There is no universal agreement about the proper foundations
More information3.2 Reduction 29. Truth. The constructor just forms the unit element,. Since there is no destructor, there is no reduction rule.
32 Reduction 29 32 Reduction In the preceding section, we have introduced the assignment of proof terms to natural deductions If proofs are programs then we need to explain how proofs are to be executed,
More informationOn the computational soundness of cryptographically masked flows
On the computational soundness of cryptographically masked flows Peeter Laud peeter.laud@ut.ee http://www.ut.ee/ peeter l Tartu University & Cybernetica AS & Institute of Cybernetics Mobius annual meeting,
More informationA Graph Rewriting Semantics for the Polyadic π-calculus
A Graph Rewriting Semantics for the Polyadic π-calculus BARBARA KÖNIG Fakultät für Informatik, Technische Universität München Abstract We give a hypergraph rewriting semantics for the polyadic π-calculus,
More informationIntroduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either
Introduction to Temporal Logic The purpose of temporal logics is to specify properties of dynamic systems. These can be either Desired properites. Often liveness properties like In every infinite run action
More informationType Soundness for Path Polymorphism
Type Soundness for Path Polymorphism Andrés Ezequiel Viso 1,2 joint work with Eduardo Bonelli 1,3 and Mauricio Ayala-Rincón 4 1 CONICET, Argentina 2 Departamento de Computación, FCEyN, UBA, Argentina 3
More informationHigher-Order Abstract Non-Interference
Higher-Order Abstract Non-Interference Damiano Zanardini Dipartimento di Informatica, Università di Verona Strada Le Grazie 15, I-37134 Verona, Italy zanardini@sci.univr.it Abstract. This work proposes
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 informationForcing-based cut-elimination for Gentzen-style intuitionistic sequent calculus
Forcing-based cut-elimination for Gentzen-style intuitionistic sequent calculus Hugo Herbelin 1 and Gyesik Lee 2 1 INRIA & PPS, Paris Université 7 Paris, France Hugo.Herbelin@inria.fr 2 ROSAEC center,
More informationComputational Logic and the Quest for Greater Automation
Computational Logic and the Quest for Greater Automation Lawrence C Paulson, Distinguished Affiliated Professor for Logic in Informatics Technische Universität München (and Computer Laboratory, University
More informationRules and derivations in an elementary logic course arxiv: v1 [cs.lo] 7 Jan 2016
Rules and derivations in an elementary logic course arxiv:160101483v1 [cslo] 7 Jan 2016 Gilles Dowek Inria, 23 avenue d Italie, CS 81321, 75214 Paris Cedex 13, France gillesdowek@inriafr When teaching
More informationHORSes: format, termination and confluence
HORSes: format, termination and confluence Jean-Pierre Jouannaud INRIA-LIAMA and singhua Software Chair Joint on-going work with Jianqi Li School of Software, singhua University Project CoqLF NList Cross-discipline
More informationOn the Correctness of the Krivine Machine
On the Correctness of the Krivine Machine Mitchell Wand Northeastern University 2003-10-03 15:55:00 wand October 3, 2003 Abstract We provide a short proof of the correctness of the Krivine machine by showing
More informationIntroduction to lambda calculus Part 6
Introduction to lambda calculus Part 6 Antti-Juhani Kaijanaho 2017-02-16 1 Untyped lambda calculus 2 Typed lambda calculi 2.1 Dynamically typed lambda calculus with integers 2.2 A model of Lisp 2.3 Simply
More informationIntroduction to dependent type theory. CIRM, May 30
CIRM, May 30 Goals of this presentation Some history and motivations Notations used in type theory Main goal: the statement of main properties of equality type and the univalence axiom First talk P ropositions
More informationCMSC 336: Type Systems for Programming Languages Lecture 10: Polymorphism Acar & Ahmed 19 February 2008
CMSC 336: Type Systems for Programming Languages Lecture 10: Polymorphism Acar & Ahmed 19 February 2008 Contents 1 Polymorphism 1 2 Polymorphic λ-calculus: Syntax 1 3 Static Semantics 2 4 Dynamic Semantics
More informationOperational Semantics
Operational Semantics Semantics and applications to verification Xavier Rival École Normale Supérieure Xavier Rival Operational Semantics 1 / 50 Program of this first lecture Operational semantics Mathematical
More informationLambda-Calculus (I) 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010
Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables conversion
More informationA simple proof that super-consistency implies cut elimination
A simple proof that super-consistency implies cut elimination Gilles Dowek 1 and Olivier Hermant 2 1 École polytechnique and INRIA, LIX, École polytechnique, 91128 Palaiseau Cedex, France gilles.dowek@polytechnique.edu
More information