Tableaux for Veri fi cation of Data-Centric Processes Andreas Bauer 1,2 Peter Baumgartner 1,2 Martin Diller 1 Michael Norrish 1,2 1 NICTA 2 ANU NICTA Funding and Supporting Members and Partners
Goal Application viewpoint To build a veri fi cation system for analysing temporal properties of data-centric (business) processes Current technology is mainy Petri-Nets and propositional model checking Tableaux viewpoint To build a model checker for CTL*(FOL(Arrays+Lists+LIA)) Is it feasibly in practice despite (high) undecidability? 2 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
The Role of Propositional Model Checking Modelling with process fragments in YA WL GRAPHICAL LTL FORMULA A B ( ! A) W B TEMPLATE ‘PLAIN’ ( ! bill ) W pickup pickup bill CONSTRAINT pickup BRANCHED CONSTRAINT ( ! bill ) W ( pickup \/ deliver ) bill delivery A 1 BRANCHED A 2 CONSTRAINT ( ! B ) W ( A 1 \/ A 2 \/ … \/ A N ) B TO MULTIPLE ... TASKS A N We follow a similar approach but use FOL instead of PL 3 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Talk Overview 1. Modelling Language and Reasoning Problems 2. Tableau calculus 3. Implementation and Experiments 4 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Typed Data Modelling Language JSON Types DB = { stock: Array[Stock], nrStockItems: Integer, open: List[Integer], gold: Boolean, invoice: Bool, paid: Bool, shipped: Bool } Stock = { ident: String, price: Integer, available: Integer } 5 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Typed Data Modelling Language JSON Types Terms (over FOL(Array+Records+List+LIA)) DB = { stock: Array[Stock], db .stock[head( db .open)].available - 1 nrStockItems: Integer, db .open := tail( db .open) open: List[Integer], gold: Boolean, Formulas invoice: Bool, ∀ db :DB (acceptable( db ) ⇔ db .open ≠ nil) paid: Bool, shipped: Bool } Semantics Stock = { (I, α ) ⊨ acceptable( db ) ∧ db .paid = false ident: String, price: Integer, where available: Integer } I is an Array+Records+List+LIA interpretation and α is an assignment to db 5 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
State Transition Systems (1) Init Pack Declined Paid Shipped γ ← ← → → u Stocktake Packed Invoice → 6 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
State Transition Systems (1) Init Pack Declined Paid Shipped γ ← ← → → u Stocktake Packed A state s is a pair ( ℓ , α ) where ℓ is a node and α is an assignment to db Invoice → Guard γ [ db ] db .stock[head( db .open)].available > 0 6 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
State Transition Systems (1) Init Pack Declined Paid Shipped γ ← ← → → u Stocktake Packed A state s is a pair ( ℓ , α ) where ℓ is a node and α is an assignment to db Invoice → Guard γ [ db ] db .stock[head( db .open)].available > 0 Update term u [ db ] db .stock[head( db .open)].available := db .stock[head( db .open)].available - 1; db .open := tail( db .open) 6 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
State Transition Systems (2) Init Pack Declined Paid Shipped γ ← ← → → u Stocktake Packed All fragment exit nodes → implicitly connected with all fragment entry nodes ← Invoice → CTL* constraints db .gold = false ⇒ ( db .shipped = false W db .paid = true)) For non-gold customers no shipping until payment 7 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 0 s 1 ⊨ WX A s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 0 s 1 ⊨ WX A s 0 s 1 ⊭ X B s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 0 s 1 ⊨ WX A s 0 s 1 ⊭ X B s 0 s 1 ⊭ WX B s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 0 s 1 ⊨ WX A s 0 s 1 ⊭ X B s 0 s 1 ⊭ WX B s 0 s 1 ⊨ WX α for any α s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Query Language CTL* Syntax State formulas Ψ ::= α [ db ] | ¬ Ψ | Ψ ∨ Ψ | E Φ | A Φ Path formulas Φ ::= Ψ | ¬ Φ | Φ ∨ Φ | X Φ | WX Φ | Φ U Φ | Φ R Φ First-order formulas α ::= Atom | ¬ α | α ∨ α | ∀ x α (W, F, G, ∃ are macros) Finite trace semantics [Manna&Pnueli 1995] For e.g. X and WX s 0 s 0 s 1 ⊨ X A s 0 s 1 ⊨ WX A s 0 s 1 ⊭ X B s 0 s 1 ⊭ WX B s 0 s 1 ⊨ WX α s 0 s 1 ⊭ X α for any α s 1 A 8 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Satisfaction Relation 9 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Satisfaction Relation Init Pack Declined γ u Stocktake Packed Paid Shipped ← ← → → Invoice → 9 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Satisfaction Relation Init Pack Declined γ u Stocktake Packed Paid Shipped ← ← → → Invoice → Π completed: ∀ s : Status . ( completed ( s ) ⇔ ( s . paid = true ∧ s . shipped = true )) accepted: ∀ db : DB . ( acceptable ( db ) ⇔ ( ¬ isEmpty ( db . order ))) readyToShip: ∀ s : Status . ( readyToShip ( s ) ⇔ ( isEmpty ( s . open ))) ... nongold: ( db . gold = false ⇒ ( db . status . shipped = false W db . status . paid = true )) 9 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Satisfaction Relation ? ⊨ Query Init Pack Declined γ u Stocktake Packed Paid Shipped ← ← → → Invoice → Π completed: ∀ s : Status . ( completed ( s ) ⇔ ( s . paid = true ∧ s . shipped = true )) accepted: ∀ db : DB . ( acceptable ( db ) ⇔ ( ¬ isEmpty ( db . order ))) readyToShip: ∀ s : Status . ( readyToShip ( s ) ⇔ ( isEmpty ( s . open ))) ... nongold: ( db . gold = false ⇒ ( db . status . shipped = false W db . status . paid = true )) 9 9 Bauer/Baumgartner/Diller/Norrish Tableaux for Veri fi cation of Data-Centric Processes
Recommend
More recommend