Inf. flow in Logic Prog. Information Flow in Logic Programming Antoun Yaacoub Introduction Syntax and semantics Antoun Yaacoub Information flow in logic Pg. Deciding Institut de Recherche en Informatique de Toulouse (IRIT) bisimulation LILaC Team Application Conclusion November 28th, 2012 1/56
Introduction Inf. flow in Logic Prog. Antoun Yaacoub Data security Introduction Concepts Syntax and Confidentiality semantics Integrity Information flow in logic Pg. Availability Deciding bisimulation Security policy Application Bell-LaPadula model - 1976 Conclusion Biba model - 1977 Security mechanisms Prevention Access control Detection Inference control Recovery Information flow control 2/56
Introduction Inf. flow in Logic Prog. P ( x , y ) Antoun Yaacoub Input Output Introduction Initial state → x = x vali Syntax and semantics y = y vali Execution trace Information flow in logic Pg. Deciding bisimulation Application Conclusion Final state → x = x valf y = y valf 3/56
Introduction Inf. flow in Logic Prog. P ( x , y ) Antoun Yaacoub Input Output Introduction Initial state → x = x vali Syntax and semantics y = y vali Execution trace Information flow in logic Pg. → P y x − Deciding bisimulation Application Conclusion ”The final value of y tells us (more or less) about the initial value of x ”. Final state → x = x valf y = y valf 3/56
Examples Inf. flow in Logic Prog. Antoun Yaacoub Introduction Syntax and semantics . copy ( F 1 , F 2) F 1 → F 2 Information flow in logic Pg. . y := x ; x → y Deciding bisimulation Application . z := x ; x → z Conclusion x → y y := z ; 4/56
Information flow in logic programming Inf. flow in Logic Prog. � Antoun Yaacoub Introduction Syntax and semantics P ∪ { G ( � , y ) } Information flow in logic Pg. Deciding bisimulation Application Conclusion 5/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion 6/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 6/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 7/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 8/56
Outline of the presentation Inf. flow in Logic Prog. Antoun Yaacoub Context 1 Introduction Syntax and semantics of logic programming Syntax and semantics Information flow in logic Pg. Information flow in logic programming 2 Deciding bisimulation Definitions Application Bisimulation Conclusion Decidability and complexity results Application 3 Conclusion 4 9/56
Outline of the presentation Inf. flow in Logic Prog. Antoun Yaacoub Context 1 Introduction Syntax and semantics of logic programming Syntax and semantics Information flow in logic Pg. Information flow in logic programming 2 Deciding bisimulation Definitions Application Bisimulation Conclusion Decidability and complexity results Application 3 Conclusion 4 10/56
Datalog programs Inf. flow in Logic Prog. Antoun Yaacoub Language L =Datalog language Introduction Syntax and clause: A 0 ← A 1 , · · · , A i , · · · , A n semantics A i : p ( t 1 , · · · , t k ). Information flow in logic Pg. Term in Datalog: a constant or a variable. Deciding bisimulation Fact: A 0 ← Application Goal: G = ← A 1 , · · · , A m . Conclusion Empty goal: � Inference rule: SLD-resolution Computation rule: selection of the leftmost atom in a goal 11/56
Datalog programs - example Inf. flow in Logic Let P be the program: Example of goals: Prog. r ( b , b ) ← , ← s ( a , y ) , r ( x , y ) Antoun Yaacoub q ( a , a ) ← , ← q ( x , a ) Introduction p ( a , b ) ← , ← p ( a , z ) Syntax and semantics p ( x , y ) ← r ( x , y ) , Information flow p ( x , z ) ← q ( x , y ) , p ( y , z ) in logic Pg. and G be the goal ← p ( a , z ). Deciding bisimulation ← p ( a , z ) Application Conclusion { z �→ b } { x �→ a , y �→ z } � ← q ( a , y ) , p ( y , z ) ← r ( a , z ) success failure { y �→ a } ← p ( a , z ) . . . infinite 12/56
Prolog programs Inf. flow in Logic Prog. Antoun Yaacoub Introduction The alphabet of Prolog includes function symbols (constants, Syntax and variables and expression of the form f ( ... ) are terms) semantics Information flow in logic Pg. ← p ( a ) Deciding Example: bisimulation Application ← p ( f ( a )) Conclusion Let P be: p ( x ) ← p ( f ( x )) ← p ( f ( f ( a ))) and let G = ← p ( a ) . . . 13/56
Outline of the presentation Inf. flow in Logic Prog. Antoun Yaacoub Context 1 Introduction Syntax and semantics of logic programming Syntax and semantics Information flow in logic Pg. Information flow in logic programming 2 Deciding bisimulation Definitions Application Bisimulation Conclusion Decidability and complexity results Application 3 Conclusion 4 14/56
Information flow in logic programming Inf. flow in Logic Prog. � Antoun Yaacoub Introduction Syntax and semantics P ∪ { G ( � , y ) } Information flow in logic Pg. Deciding bisimulation Application Conclusion 15/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion 16/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 16/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 17/56
Information flow in logic programming Inf. flow in Logic ← p ( a , y ) Prog. Antoun Yaacoub θ = { y �→ b } θ = { x �→ a } θ = { x �→ a } ← q ( b , a ) Introduction ← s ( a , y ) ← q ( a , z ) , s ( z , y ) Syntax and θ = { z �→ b } semantics θ = { y �→ a } Information flow ← s ( b , y ) in logic Pg. Deciding θ = { y �→ b } bisimulation Application Conclusion ← p ( a , y ) θ = { x �→ a } θ = { y �→ b } θ = { x �→ a } ← q ( b , a ) ← s ( a , y ) ← q ( a , z ) , s ( z , y ) θ = { z �→ b } θ = { y �→ a } ← s ( b , y ) θ = { y �→ b } 18/56
Recommend
More recommend