combining sat solving with integer programming for
play

Combining SAT solving with Integer Programming for Inductive - PowerPoint PPT Presentation

Introduction Verification Analysis Summary Combining SAT solving with Integer Programming for Inductive Verification of Lustre Programs 3rd December 2004 Anders Franz en Combining SAT and ILP Introduction Verification Analysis


  1. Introduction Verification Analysis Summary Combining SAT solving with Integer Programming for Inductive Verification of Lustre Programs 3rd December 2004 Anders Franz´ en Combining SAT and ILP

  2. Introduction Verification Analysis Summary Outline Introduction 1 The Lustre programming language Temporal induction Propositional logic Verification 2 The decision procedure (SAT + Integer Programming) Variants of the basic algorithm Analysis 3 Test plan Comparison with Luke Anders Franz´ en Combining SAT and ILP

  3. Introduction Verification Analysis Summary Outline Introduction 1 The Lustre programming language Temporal induction Propositional logic Verification 2 The decision procedure (SAT + Integer Programming) Variants of the basic algorithm Analysis 3 Test plan Comparison with Luke Anders Franz´ en Combining SAT and ILP

  4. Introduction Verification Analysis Summary Outline Introduction 1 The Lustre programming language Temporal induction Propositional logic Verification 2 The decision procedure (SAT + Integer Programming) Variants of the basic algorithm Analysis 3 Test plan Comparison with Luke Anders Franz´ en Combining SAT and ILP

  5. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Lustre node Counter ( X : bool ) returns ( C : int ); var PC : int; let PC = 0 → pre C; C = if X then PC + 1 else PC; tel node Prop( X : bool ) returns ( OK : bool ); let OK = Counter( X ) ≥ 0; tel Anders Franz´ en Combining SAT and ILP

  6. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Verification by induction Assume property valid at time Prove property valid in n , prove property valid at time initial time point n + 1 X 1 X n X n + 1 ❄ PC 0 PC 1 ❄ ❄ T ✲ ✲ PC n − 1 PC n PC n + 1 T T ✲ ✲ ✲ OK 1 ❄ OK n ! OK n + 1 ? ❄ ❄ Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete Anders Franz´ en Combining SAT and ILP

  7. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Verification by induction Assume property valid at time Prove property valid in n , prove property valid at time initial time point n + 1 X 1 X n X n + 1 ❄ PC 0 PC 1 ❄ ❄ T ✲ ✲ PC n − 1 PC n PC n + 1 T T ✲ ✲ ✲ OK 1 ❄ OK n ! OK n + 1 ? ❄ ❄ Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete Anders Franz´ en Combining SAT and ILP

  8. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Verification by induction Assume property valid at time Prove property valid in n , prove property valid at time initial time point n + 1 X 1 X n X n + 1 ❄ PC 0 PC 1 ❄ ❄ T ✲ ✲ PC n − 1 PC n PC n + 1 T T ✲ ✲ ✲ OK 1 ❄ OK n ! OK n + 1 ? ❄ ❄ Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete Anders Franz´ en Combining SAT and ILP

  9. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Verification by induction Assume property valid at time Prove property valid in n , prove property valid at time initial time point n + 1 X 1 X n X n + 1 ❄ PC 0 PC 1 ❄ ❄ T ✲ ✲ PC n − 1 PC n PC n + 1 T T ✲ ✲ ✲ OK 1 ❄ OK n ! OK n + 1 ? ❄ ❄ Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete Anders Franz´ en Combining SAT and ILP

  10. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Verification by induction Assume property valid at time Prove property valid in n , prove property valid at time initial time point n + 1 X 1 X n X n + 1 ❄ PC 0 PC 1 ❄ ❄ T ✲ ✲ PC n − 1 PC n PC n + 1 T T ✲ ✲ ✲ OK 1 ❄ OK n ! OK n + 1 ? ❄ ❄ Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete Anders Franz´ en Combining SAT and ILP

  11. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Propositional logic Short introduction Example A clause is a set of literals. At { p , q } least one literal must be true. A formula is a set of clauses. All clauses must be true. Anders Franz´ en Combining SAT and ILP

  12. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary Propositional logic Short introduction Example A clause is a set of literals. At { p , q } least one literal must be true. { p , ¬ q , r } A formula is a set of clauses. {¬ q , ¬ r } All clauses must be true. Anders Franz´ en Combining SAT and ILP

  13. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example Search for a satisfying variable assignment { p , q } { p , ¬ q , r } Choose a variable, and assign {¬ q , ¬ r } at value to it Infer consequences Repeat until all variables assigned, or a conflict found Anders Franz´ en Combining SAT and ILP

  14. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example Search for a satisfying variable assignment { p , q } { p , ¬ q , r } Choose a variable, and assign {¬ q , ¬ r } at value to it Infer consequences p = ⊥ Repeat until all variables assigned, or a conflict found Anders Franz´ en Combining SAT and ILP

  15. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example Search for a satisfying variable assignment { p , q } { p , ¬ q , r } Choose a variable, and assign {¬ q , ¬ r } at value to it Infer consequences p = ⊥ Repeat until all variables assigned, or a conflict found Anders Franz´ en Combining SAT and ILP

  16. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example Search for a satisfying variable assignment { p , q } { p , ¬ q , r } Choose a variable, and assign {¬ q , ¬ r } at value to it Infer consequences p = ⊥ = ⊤ Repeat until all variables q assigned, or a conflict found Anders Franz´ en Combining SAT and ILP

  17. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example Search for a satisfying variable assignment { p , q } { p , ¬ q , r } Choose a variable, and assign {¬ q , ¬ r } at value to it Infer consequences p = ⊥ = ⊤ Repeat until all variables q assigned, or a conflict found r = ⊤ and ⊥ ?? Anders Franz´ en Combining SAT and ILP

  18. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict = ⊥ p Add conflict clause q = ⊤ Backtrack and continue ⊤ and ⊥ ?? r = Anders Franz´ en Combining SAT and ILP

  19. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict = ⊥ p Add conflict clause q = ⊤ Backtrack and continue ⊤ and ⊥ ?? r = Anders Franz´ en Combining SAT and ILP

  20. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict { p } Add conflict clause p = ⊥ Backtrack and continue ⊤ q = r = ⊤ and ⊥ ?? Anders Franz´ en Combining SAT and ILP

  21. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict { p } Add conflict clause Backtrack and continue Anders Franz´ en Combining SAT and ILP

  22. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict { p } Add conflict clause p = ⊤ Backtrack and continue Anders Franz´ en Combining SAT and ILP

  23. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict { p } Add conflict clause p = ⊤ Backtrack and continue ⊥ q = Anders Franz´ en Combining SAT and ILP

  24. Introduction The Lustre programming language Verification Temporal induction Analysis SAT Summary SAT solving Example { p , q } Search for a satisfying variable { p , ¬ q , r } assignment {¬ q , ¬ r } Analyze reason for conflict { p } Add conflict clause p = ⊤ Backtrack and continue ⊥ q = r = ⊥ Anders Franz´ en Combining SAT and ILP

Recommend


More recommend