A brief history of model checking Ken McMillan Cadence Berkeley Labs [email protected] Outline • Part I -- Introduction to model checking – Automatic formal verification of finite-state systems – Applications • Commercial hardware design • Avionics, chemical plant control, automotive, etc. • Part II -- A brief history of model checking – Influence of many abstract ideas from logic on the development of model checking The Verification Problem • Debugging chips by simulation... – consumes greater than half of design time, – is unreliable • “Escapes” can cost up to $500M, – is increasing in cost as chip densities scale up Model Checking G(p ⇒ F q) yes MC p q no p q • input: – temporal logic spec – finite-state model • output – yes – no + counterexample (look ma, no test vectors!) 2 Temporal logic (LTL) • A logical notation that allows to: – specify relations in time – conveniently express finite control properties • Temporal operators – – – – Gp Fp Xp pWq “henceforth p” “eventually p” “p at the next time” “p unless q” 5 Types of temporal properties • Safety (nothing bad happens) G ~(ack1 & ack2) G (req ⇒ (req W ack)) • Liveness G (req ⇒F ack) “mutual exclusion” “req must hold until ack” (something good happens) “if req, eventually ack” • Fairness GF req ⇒ GF ack “if infinitely often req, infinitely often ack” 6 Computation tree logic (CTL) • Branching time model • Path quantifiers – A = “for all future paths” – E = “for some future path” • Example: AF p = “inevitably p” p p AFp p 7 CTL model checking algorithm • Example: AF p = “inevitably p” AFp AFp AFp AFp p • Complexity – linear in size of model (FSM) – linear in size of specification formula Note: LTL is exponential in formula size 9 Example: traffic light controller S E N • Guarantee no collisions • Guarantee eventual service 10 Specifications • Safety (no collisions) AG ¬ (E_Go ∧ (N_Go | S_Go)); • Liveness AG (¬ N_Go ∧ N_Sense ⇒ AF N_Go); AG (¬ S_Go ∧ S_Sense ⇒ AF S_Go); AG (¬ E_Go ∧ E_Sense ⇒ AF E_Go); • Fairness constraints infinitely often ¬(N_Go ∧ N_Sense); infinitely often ¬(S_Go ∧ S_Sense); infinitely often ¬(E_Go ∧ E_Sense); (assume each sensor off infinitely often) 14 Counterexample • East and North lights on at same time... E_Go E_Req E_Sense NS_Lock N_Go N_Req N light goes on at same time S light goes off. S takes priority and resets NS_Lock N_Sense S_Go S_Req S_Sense 15 State explosion problem • What if the state space is too large? – too much parallelism – data in model • Approaches – – – – Abstraction/reduction “Symbolic” methods Exploiting symmetry “Partial order” methods 20 Binary Decision Diagrams • Ordered decision tree for f = ab + cd a 0 0 0 d c b 1 1 1 0 d d 0 c 1 0 d d c b 1 1 0 d d c 1 d 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 21 OBDD reduction • Reduced (OBDD) form: a 1 0 0 0 0 c 1 b 1 1 d 0 1 Key idea: combine equivalent subcases 22 Symbolic model checking • Basic idea: – Use BDD’s to represent sets and relations – Avoid explicitly representing states • Transition relations a,b R(a,b,a’,b’) a’,b’ 24 Image computation • EX p = states that can reach p in one step EXp p EX p = ∃ v’. (R(v,v’) ∧ p(v’)) Note: ∃ a. f = f |a=0 + f |a=1 25 Fixed point iteration • EF p = states that can reach p Sw ... S1 S0 = p Si+1 = Si \/ EX Si ...Model checking without building state graph 26 Example: “Gigamax” cache protocol global bus ... UIC cluster bus M P UIC UIC ... P ... M P P ... • First commercial application • Method scales well with system size • Finds very subtle “escapes” 33 Genealogy of model checking Many ideas from logic influence development of model checking... Logics of Programs Temporal/ Modal Logics ω-automata S1S ATV LTL MC CTL Model Checking Symbolic Model Checking Tarski µ-calc QBF BDD Logics of programs • Floyd/Hoare/Dijkstra – Give precise definitions of programming languages – Allows reasoning about programs (proofs/derivations) – Pre-post conditions/ weakest precondition • example: assignment axioms {true} x :=y {x = y} {P} x := y {P} (no x in P) Concurrent programs • Pnueli – Concurrent vs. sequential programming sequential concurrent A A B B call ret – need to characterize execution sequences – proposes use of temporal logic Temporal and modal logics • Roots in philosophical logic – Tense logic -- formalizing linguistic time “If a, then b before c” – Modal logic -- reasoning about possibility “If I had run I would have caught my plane” • New use in computer science: – characterize the interactions of parallel processes G req ⇒ F ack Genealogy Floyd/Hoare late ‘60’s Logics of Programs Temporal/ Aristotle 300’sBCE Modal Logics Kripke ‘59 Pnueli, late 70’s CTL Model checking • Reasoning about properties of nondeterministic programs – branching time properties of programs – fixed point characterizations (Tarski) • every monotonic function has least/greatest fixed point – key idea: apply to finite graphs, not infinite trees • can directly calculate Tarski fixed points • Applications – finite state machines in hardware – protocols – proved incorrectness of some published designs Genealogy, cont Logics of Programs Temporal/ Modal Logics Tarski 50’s CTL Model Clarke/Emerson Checking Early 80’s Some published circuits are proved incorrect Decidable logics and automata • Büchi – S1S -- reason about sets of natural numbers – Automata on infinite words • characterize set of models of formula • example: sets that contain the odd numbers 0,1 0 0,1 1 – Deep connection between logics and automata LTL model checking • Vardi and Wolper – Apply Büchi’s technique to LTL – Automaton construction yields optimal decision algorithm • Kurshan – Specify properties directly as automata • example: infinitely often p (GFp) p ¬p true Genealogy Büchi, 60 ω-automata S1S Logics of Programs LTL ATV MC Kurshan Vardi/ Wolper mid 80’s Temporal/ Modal Logics CTL Model Checking Tarski Symbolic Model Checking • State explosion problem – graph model guarantees worst-case complexity • Characterize sets and relations by Boolean formulas – compute Tarski fixed points directly on formulas EXp = ∃v′. (R ∧ p′) (QBF) – Use BDD’s to represent formulas • efficient canonical form Mu-calculus • Park’s Mu-Calculus – Logic of relations with fixed point operator – Can express transitive closure – Nicely characterizes what SMC can compute • SMC algorithm for Mu-calculus – Use to express symbolic algorithms for • CTL, LTL model checking AFp = µQ. p ∨ AX Q • Automaton containment, etc... – Note: bad specification logic, but good for describing algorithms Genealogy, cont. Logics of Programs Temporal/ Modal Logics Tarski ω-automata S1S ATV LTL MC CTL Model Checking Symbolic Model Checking µ-calc QBF BDD Bryant mid 80’s late 80’s – Note first commercial application in 1990 • Encore Gigamax cache protocols Park 60’s Applications • Hardware Design – Encore Gigamax – Intel instruction decoder – SGI cache protocol chip • Other areas – Avionics (TCAS) – Chemical plant control – Nuclear storage facilities (!) • Commercial tools – Cadence, IBM, Synopsys A convergence of research areas in logic • Many areas of logic have shaped the discourse in model checking – – – – – Logics of programs Temporal/Modal logics Tarski fixed point theory Decidable logics -- S1S/automata Park’s mu-calculus • Much of this work is quite abstract, but has strongly influenced practical work in model checking
© Copyright 2026 Paperzz