smt based analysis of biological systems
play

SMT-BASED ANALYSIS OF BIOLOGICAL SYSTEMS Nicola Paoletti CS - PowerPoint PPT Presentation

SMT-BASED ANALYSIS OF BIOLOGICAL SYSTEMS Nicola Paoletti CS department, Oxford University Molecular Programming and Biological Computation reading group 8 th June 2016 Motivation Information processing in biosystems Biological computation


  1. SMT-BASED ANALYSIS OF BIOLOGICAL SYSTEMS Nicola Paoletti CS department, Oxford University Molecular Programming and Biological Computation reading group 8 th June 2016

  2. • Motivation Information processing in biosystems à Biological computation • Examples: • Medicine in 2050: “Doctor in a Cell” Synthetic biology • Molecular computing • Molecular Input Applications: • Smart therapeutics • Programmable Computer Biofuels, bioremediation, … • U. Shapiro, E. Shapiro, “How many computers can fit into a drop of water?”

  3. • Motivation Understand life • Development • Disease onset and progression • Target discovery, pluripotent stem cells, … • Dunn, S-J., et al, Science 344.6188 (2014): 1156-1160.

  4. • Motivation Formal computational modelling and analysis • Verified behaviour of synthetic biosystems / DNA circuits • Verify known biological hypotheses • Derive new hypotheses, suggest lab experiments • Design automation of molecular programs •

  5. • Motivation Formal computational modelling and analysis • Verified behaviour of synthetic biosystems / DNA circuits • Verify known biological hypotheses • Derive new hypotheses, suggest lab experiments • Design automation of molecular programs • SMT-based analysis • Expressive framework • Supports both verification and synthesis • Scalable (can handle models of practical interest) •

  6. • Outline TODAY Overview of SMT solving • Bounded Model Checking • Analysis of Chemical Reaction Networks • NOT TODAY SAT and SMT algorithms • Analysis of Gene Regulatory Networks •

  7. SMT SOLVING

  8. • SAT Boolean Satisfiability Problem (SAT) • IN: Boolean formula (CNF) φ = ( x 1 ∨ ¬ x 2 ) ∧ x 2 • OUT: is satisfiable? + Truth assignment φ NP-complete problem • Modern SAT solvers can handle millions of variables and clauses • Established technique for verification and synthesis of hardware • and logic circuits Limited expressiveness (cannot encode e.g. arithmetic or datatypes) •

  9. • SMT Satisfiability Modulo Theories Problem (SMT) • IN: First-Order-Logic (FOL) formula over one or more background theories φ = x 1 ≤ x 2 = ⇒ f ( x 1 ) ≤ f ( x 2 ) • OUT: is satisfiable? + Interpretation of free variables in φ their respective domains

  10. • SMT Satisfiability Modulo Theories Problem (SMT) • IN: First-Order-Logic (FOL) formula over one or more background theories φ = x 1 ≤ x 2 = ⇒ f ( x 1 ) ≤ f ( x 2 ) • OUT: is satisfiable? + Interpretation of free variables in φ their respective domains In the general case, FOL is undecidable [Church, Turing] • But in SMT, background theories fix the interpretation of (function, • predicate and constant) symbols With decidable theories, SMT is decidable too • With undecidable theories, semi-decision procedures often work • well in practice

  11. • SMT COMMON (LAZY) APPROACH: Provide ad-hoc, specialised theory solvers, able to handle negation • and conjunction of atomic propositions Integrate with SAT solver to handle arbitrary Boolean structures • Methods exists for combination of multiple theories •

  12. • SMT COMMON (LAZY) APPROACH: Provide ad-hoc, specialised theory solvers, able to handle negation • and conjunction of atomic propositions Integrate with SAT solver to handle arbitrary Boolean structures • Methods exists for combination of multiple theories • APPLICATIONS (in CS): Program verification (Boogie, Spec#, …) • Model checking (BLAST, CBMC, nuXmv, …) • Symbolic execution • Program synthesis •

  13. • Some examples (Non-)Linear Integer/Real Arithmetic • a > b + 2 ∧ a = 2 · c + 10 ∧ b + c ≤ 1000 SAT, [a = 10, b = 0, c = 0] x · x = x + 2 . 0 ∧ x · y = x ∧ ( y − 1 . 0) · z = 1 . 0 UNSAT Bit-vectors • Validity of De Morgan’s law: ¬ (( x & y ) = ( x | y )) UNSAT Play with http://rise4fun.com/Z3/tutorial/

  14. • Some examples Strings • SAT, [a = ‘bcc’, b = ‘a’] a.b = “ abc ” .a [1] Uninterpreted Functions • f (10) > f (2) ∧ f (10) > f ( a ) SAT, [a = 3, f(x) = {0 if x=10, -1 if x=2, -1 if x=3, -1 otherwise} ] Ø Less conventional, but useful Optimisation (http://rise4fun.com/z3opt/tutorial/ ) • Theory of ODEs – delta-satisfiability (http://dreal.github.io/ ) • Play with http://rise4fun.com/Z3/tutorial/

  15. BOUNDED MODEL CHECKING

  16. Bounded Model Checking (BMC) [Biere et al, TACAS 99] • • A SAT/SMT-based method to verify properties on finite paths • Looks for counter-examples (CEs) of finite length , by negating the property and finding SAT assignment • Based on unrolling the transition relation INVARIANT/SAFETY PROPERTY ^ _ I ( ρ [0]) ∧ T ( ρ [ i ] , ρ [ i + 1]) ∧ ¬ φ ( ρ [ i ]) 0 ≤ i<k 0 ≤ i<k

  17. Bounded Model Checking (BMC) [Biere et al, TACAS 99] • • A SAT/SMT-based method to verify properties on finite paths • Looks for counter-examples (CEs) of finite length , by negating the property and finding SAT assignment • Based on unrolling the transition relation INVARIANT/SAFETY PROPERTY ^ _ I ( ρ [0]) ∧ T ( ρ [ i ] , ρ [ i + 1]) ∧ ¬ φ ( ρ [ i ]) 0 ≤ i<k 0 ≤ i<k • If SAT , the property DOES NOT hold • If UNSAT , increase length until: A CE is found (SAT) • The search becomes intractable • A fixed bound is reached •

  18. • Example • 2-bit counter value of j-th bit at i-th step • x i [ j ] • At each step, increment counter: T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) Verify (bounded) invariant: • φ ( x ) = ¬ x [0] ∨ ¬ x [1] (it always holds that at least one of the two bits is 0) Initial state: I ( x ) = ¬ x [0] ∧ ¬ x [1] (counter set to 00) •

  19. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3

  20. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3 NEED TO CHECK: ^ _ I ( x 0 ) ∧ T ( x i , x i +1 ) ∧ ¬ φ ( x i ) 0 ≤ i< 3 0 ≤ i ≤ 3

  21. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3 Step 1: I ( x 0 ) ∧ ¬ φ ( x 0 ) [UNSAT, safe so far]

  22. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3 Step 1: I ( x 0 ) ∧ ¬ φ ( x 0 ) [UNSAT, safe so far] Step 2: [UNSAT, safe so far] I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ ¬ φ ( x 1 )

  23. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3 Step 1: I ( x 0 ) ∧ ¬ φ ( x 0 ) [UNSAT, safe so far] Step 2: [UNSAT, safe so far] I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ ¬ φ ( x 1 ) [UNSAT, safe so far] Step 3: I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ T ( x 1 , x 2 ) ∧ ¬ φ ( x 2 )

  24. • Example I ( x ) = ¬ x [0] ∧ ¬ x [1] φ ( x ) = ¬ x [0] ∨ ¬ x [1] T ( x, x 0 ) = ( x 0 [1] = x [1] ⊕ x [0]) ∧ ( x 0 [0] = ¬ x [0]) T(x 0 ,x 1 ) T(x 1 ,x 2 ) T(x 2 ,x 3 ) x 0 [0] x 2 [0] x 1 [0] x 3 [0] x 0 [1] x 2 [1] x 1 [1] x 3 [1] x 0 x 2 x 1 x 3 Step 1: I ( x 0 ) ∧ ¬ φ ( x 0 ) [UNSAT, safe so far] Step 2: [UNSAT, safe so far] I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ ¬ φ ( x 1 ) [UNSAT, safe so far] Step 3: I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ T ( x 1 , x 2 ) ∧ ¬ φ ( x 2 ) Step 4: I ( x 0 ) ∧ T ( x 0 , x 1 ) ∧ T ( x 1 , x 2 ) ∧ T ( x 2 , x 3 ) ∧ ¬ φ ( x 3 ) [SAT, CE found: x 3 [0]=1, x 3 [1]=1, …]

  25. • The Length Problem Finite k à incomplete (cannot capture CEs at k’>k) • Complexity of BMC depends on k • How to find k such that BMC is complete? • A possible solution is using diameter of transition system: length of the • longest loop-free path (…but diameter computation can be very expensive) •

  26. • The Length Problem Finite k à incomplete (cannot capture CEs at k’>k) • Complexity of BMC depends on k • How to find k such that BMC is complete? • A possible solution is using diameter of transition system: length of the • longest loop-free path (…but diameter computation can be very expensive) • In practice… • “BMC is normally used for detecting bugs, not for proving their absence.” • So when the property doesn’t hold, BMC is efficient since returns the CE with minimal length • Many problems consider bounded properties • BMC remains the most effective SAT/SMT-based method in general

  27. • Alternative SAT/SMT Methods k-induction [Sheeran et al, FMCAD 2000] • CEGAR [Chauhan et al, FMCAD 2002] • Interpolation [McMillan, CAV 2003] • IC3 [Bradley, VMCAI 2011] •

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend