from first order temporal logic to parametric trace
play

From First-order Temporal Logic to Parametric Trace Slicing Giles - PowerPoint PPT Presentation

Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude From First-order Temporal Logic to Parametric Trace Slicing Giles Reger David Rydeheard University of Manchester, Manchester, UK September 25, 2015 Motivation


  1. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude From First-order Temporal Logic to Parametric Trace Slicing Giles Reger David Rydeheard University of Manchester, Manchester, UK September 25, 2015

  2. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Outline Motivation FO-LTL f Parametric Trace Slicing Slicability Usable Fragment Translation Conclude

  3. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Motivation • There are lots and lots of languages used for specifying RV properties (see the competition) • Particularly for first-order/parametric/data properties • Whilst propositional case seems well understood, lots more freedom with first-order • Mainly how to organise the domain of quantification • Languages often driven by monitoring concerns • We should understand how they are related • Parametric trace slicing can be efficiently monitored • Temporal logic is well understand and widely used • If we can understand their connection we can leverage both advantages

  4. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace • satisfy this formula • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  5. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace • satisfy this formula ∀ x : � ( p ( x ) → � q ( x )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  6. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace p ( a ) . p ( b ) . q ( a ) . q ( b ) . p ( c ) . q ( c ) . p ( d ) . q ( d ) • satisfy this formula ∀ x : � ( p ( x ) → � q ( x )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  7. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace p ( a ) . p ( b ) . q ( a ) . q ( b ) . p ( c ) . q ( c ) . p ( d ) . q ( d ) • satisfy this formula ∀ x : � ( p ( x ) → � q ( x )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  8. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace p ( a ) . p ( b ) . q ( a ) . q ( b ) . p ( c ) . q ( c ) . p ( d ) . q ( d ) • satisfy this formula ∀ x : � ( p ( x ) → � q ( x )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  9. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace p ( a ) . p ( b ) . q ( a ) . q ( b ) . p ( c ) . q ( c ) . p ( d ) . q ( d ) • satisfy this formula ∀ x : ¬ q ( x ) U p ( x ) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  10. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace open ( A ) . open ( B ) . open ( B ) . close ( A ) . close ( A ) • satisfy this formula ∀ f : open ( f ) → ( ¬ open ( f ) U ◦ close ( f )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  11. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace open ( A ) . open ( B ) . open ( B ) . close ( A ) . close ( A ) • satisfy this formula ∀ f : open ( f ) → ( ¬ open ( f ) U ◦ close ( f )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  12. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace open ( A ) . open ( B ) . open ( B ) . close ( A ) . close ( A ) • satisfy this formula ∀ f : open ( f ) → ( ¬ open ( f ) U ◦ close ( f )) • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification?

  13. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Interpreting Formulas • Does this trace • satisfy this formula • In the ‘standard’ view of quantification? • In the ‘slicing’ view of quantification? • Other notions of quantification exist that give different interpretations, we stick to these two for now

  14. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Introducing FO-LTL f • Time is linear, discrete and future • Finite-trace semantics • Syntax (note use of next-Until) φ = true | a | ∀ x : φ | ¬ φ | φ ∨ φ | φ U ◦ φ • Semantics D , τ, v , i | = true D , τ, v , i | = a if τ i = v ( a ) D , τ, v , i | = ¬ φ if D , τ, v , i �| = φ D , τ, v , i | = φ 1 ∨ φ 2 if D , τ, v , i | = φ 1 or D , τ, v , i | = φ 2 φ 1 U ◦ φ 2 D , τ, v , i | = if there exists a j > i such that either D , τ, v , j | = φ 2 or ( j = | τ | and φ 2 = false ) and for i < k < j we have D , τ, v , k | = φ 1 D , τ, v , i | = ∀ x : φ if for every d ∈ D ( x ) we have D , τ, v † [ x �→ d ] , i | = φ

  15. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Introducing FO-LTL f • Time is linear, discrete and future • Finite-trace semantics • Syntax (note use of next-Until) φ = true | a | ∀ x : φ | ¬ φ | φ ∨ φ | φ U ◦ φ • Semantics D , τ, v , i | = true D , τ, v , i | = a if τ i = v ( a ) D , τ, v , i | = ¬ φ if D , τ, v , i �| = φ D , τ, v , i | = φ 1 ∨ φ 2 if D , τ, v , i | = φ 1 or D , τ, v , i | = φ 2 φ 1 U ◦ φ 2 D , τ, v , i | = if there exists a j > i such that either D , τ, v , j | = φ 2 or ( j = | τ | and φ 2 = false ) and for i < k < j we have D , τ, v , k | = φ 1 D , τ, v , i | = ∀ x : φ if for every d ∈ D ( x ) we have D , τ, v † [ x �→ d ] , i | = φ

  16. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Introducing FO-LTL f • Time is linear, discrete and future • Finite-trace semantics • Syntax (note use of next-Until) φ = true | a | ∀ x : φ | ¬ φ | φ ∨ φ | φ U ◦ φ • Semantics D , τ, v , i | = true D , τ, v , i | = a if τ i = v ( a ) D , τ, v , i | = ¬ φ if D , τ, v , i �| = φ D , τ, v , i | = φ 1 ∨ φ 2 if D , τ, v , i | = φ 1 or D , τ, v , i | = φ 2 φ 1 U ◦ φ 2 D , τ, v , i | = if there exists a j > i such that either D , τ, v , j | = φ 2 or ( j = | τ | and φ 2 = false ) and for i < k < j we have D , τ, v , k | = φ 1 D , τ, v , i | = ∀ x : φ if for every d ∈ D ( x ) we have D , τ, v † [ x �→ d ] , i | = φ

  17. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Definitions • Can define the normal things in terms of U ◦ false U ◦ ϕ � ϕ = φ 2 ∨ ( φ 1 ∧ ( φ 1 U ◦ φ 2 )) φ 1 U φ 2 = ♦ φ = true U φ � φ = φ U false • Next is strong i.e. � a is false at the end of the trace • But � a will be true at the end of the trace • And ♦ a will be false at the end of the trace • Slightly non-standard finite trace semantics, would like to vary in the future

  18. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Domain of quantification • The (other) controversial bit • We write τ | = φ if a trace τ satisfies a property φ , defined as follows τ | = φ dom ( τ, φ ) , τ, [] , 0 | = φ iff where the domain function dom is defined as:   e ( . . . , d i , . . . ) ∈ τ ∧   dom ( τ, φ )( x ) =  d i where e ( . . . , x i , . . . ) ∈ events ( φ ) ∧ x i = x  • The domain of quantification is dependent on the full trace

  19. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Parametric Trace Slicing • Given a trace τ and valuation θ let τ ↓ θ be the θ -slice of τ ǫ ↓ θ = ǫ � ( τ ↓ θ ) . e ( v ) if ∃ e ( z ) ∈ A ( X ) : θ ( e ( z )) = e ( v ) τ. e ( v ) ↓ θ = ( τ ↓ θ ) otherwise • The trace τ is accepted for quantification list Λ( X ) and = P ( X ) propositional property P ( X ) if τ | Λ( X ) , defined as [] = P ( X ) = P ( X ) τ | ∀ x : Λ if for every d ∈ dom ( x ) we have τ | θ † [ x �→ d ] Λ θ = P ( X ) = P ( X ) τ | ∃ x : Λ if for some d ∈ dom ( x ) we have τ | θ † [ x �→ d ] Λ θ = P ( X ) τ | ǫ if τ ↓ θ ∈ L ( θ, P ( X )) θ • Using the same domain of quantification dom

  20. Motivation FO-LTL f Slicing Slicability Usable Fragment Translation Conclude Example Given the trace call ( A ) . call ( B ) . call ( C ) . return ( C ) . return ( B ) . call ( C ) . return ( C ) . return ( A ) And a property ϕ that whenever a method m 2 is called inside a method m 1 , the method m 2 should return before m 1 . events ( ϕ ) = { call ( m 1 ) , return ( m 1 ) , call ( m 2 ) , return ( m 2 ) } We get the following slices m 1 m 2 slice A B call ( A ) . call ( B ) . return ( B ) . return ( A ) A C call ( A ) . call ( C ) . return ( C ) . call ( C ) . return ( C ) . return ( A ) B C call ( B ) . call ( C ) . return ( C ) . return ( B ) . call ( C ) . return ( C ) Each slice can be checked by some unquantified checker P ( m 1 , m 2 )

Recommend


More recommend