Model Checking My 27 year quest to overcome the state explosion problem Edmund Clarke Computer Science Department Computer Science Department Carnegie.

Slides:



Advertisements
Similar presentations
Abstraction in Model Checking Nishant Sinha. Model Checking Given a: –Finite transition system M –A temporal property p The model checking problem: –Does.
Advertisements

CS 267: Automated Verification Lecture 2: Linear vs. Branching time. Temporal Logics: CTL, CTL*. CTL model checking algorithm. Counter-example generation.
M ODEL CHECKING -Vasvi Kakkad University of Sydney.
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
Introduction to Formal Methods for SW and HW Development 09: SAT Based Abstraction/Refinement in Model-Checking Roberto Sebastiani Based on work and slides.
SAT Based Abstraction/Refinement in Model-Checking Based on work by E. Clarke, A. Gupta, J. Kukula, O. Strichman (CAV’02)
Verification of Evolving Software Natasha Sharygina Joint work with Sagar Chaki and Nishant Sinha Carnegie Mellon University.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
Model Checking I What are LTL and CTL?. and or dreq q0 dack q0bar.
Thomas Ball, Rupak Majumdar, Todd Millstein, Sriram K. Rajamani Presented by Yifan Li November 22nd In PLDI 01: Programming Language.
Model Checking I What are LTL and CTL?. and or dreq q0 dack q0bar D D.
Edmund M. Clarke School of Computer Science Carnegie Mellon University Model Checking and the Verification of Computer Systems.
Grand Challenge Problem: Model Check Concurrent Software Edmund M. Clarke Department of Computer Science Carnegie Mellon University.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
Demonstration Of SPIN By Mitra Purandare
CSEP590 – Model Checking and Software Verification University of Washington Department of Computer Science and Engineering Summer 2003.
Using Statically Computed Invariants Inside the Predicate Abstraction and Refinement Loop Himanshu Jain Franjo Ivančić Aarti Gupta Ilya Shlyakhter Chao.
1 Model Checking, Abstraction- Refinement, and Their Implementation Based on slides by: Orna Grumberg Presented by: Yael Meller June 2008.
1 Model Checking, Abstraction- Refinement, and Their Implementation Orna Grumberg Verification seminar March 2006.
State-Event Software Verification for Branching-Time Specifications Sagar Chaki, Ed Clarke, Joel Ouaknine, Orna Grumberg Natasha Sharygina, Tayssir Touili,
1 Predicate Abstraction of ANSI-C Programs using SAT Edmund Clarke Daniel Kroening Natalia Sharygina Karen Yorav (modified by Zaher Andraus for presentation.
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
Predicate Abstraction for Software and Hardware Verification Himanshu Jain Model checking seminar April 22, 2005.
Review of the automata-theoretic approach to model-checking.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
ESE601: Hybrid Systems Introduction to verification Spring 2006.
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
1 Abstraction Refinement for Bounded Model Checking Anubhav Gupta, CMU Ofer Strichman, Technion Highly Jet Lagged.
Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog Himanshu Jain Daniel Kroening Natasha Sharygina Edmund Clarke Carnegie Mellon.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
Model Checking for Embedded Systems Edmund Clarke, CMU High-Confidence Embedded Systems Workshop, May 1 st.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 4: SMT-based Bounded Model Checking of Concurrent Software.
MCAI 2.0 Model Checking in Ten Minutes Edmund Clarke School of Computer Science Carnegie Mellon University.
Grand Challenge Problem: Model Check Concurrent Software Edmund M. Clarke Department of Computer Science Carnegie Mellon University.
Lecture 1: Model Checking
50.530: Software Engineering
Edmund M. Clarke School of Computer Science Carnegie Mellon University Lecture 2: Model Checking My 30 Year Quest to Conquer the State Explosion Problem.
10/19/2015COSC , Lecture 171 Real-Time Systems, COSC , Lecture 17 Stefan Andrei.
Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications 1.
1 Predicate Abstraction and Refinement for Verifying Hardware Designs Himanshu Jain Joint work with Daniel Kroening, Natasha Sharygina, Edmund M. Clarke.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
Localization and Register Sharing for Predicate Abstraction Himanshu Jain Franjo Ivančić Aarti Gupta Malay Ganai.
Model Checking Overview Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA
Verification & Validation By: Amir Masoud Gharehbaghi
Reachability for Linear Hybrid Automata Using Iterative Relaxation Abstraction Sumit K. Jha, Bruce H. Krogh, James E. Weimer, Edmund M. Clarke Carnegie.
CS357 Lecture 13: Symbolic model checking without BDDs Alex Aiken David Dill 1.
Bounded Model Checking A. Biere, A. Cimatti, E. Clarke, Y. Zhu, Symbolic Model Checking without BDDs, TACAS’99 Presented by Daniel Choi Provable Software.
CHARME’03 Predicate abstraction with Minimum Predicates Sagar Chaki*, Ed Clarke*, Alex Groce*, Ofer Strichman** * Carnegie Mellon University ** Technion.
Compositional Verification for System-on-Chip Designs SRC Student Symposium Paper 16.5 Nishant Sinha Edmund Clarke Carnegie Mellon University.
Verifying Component Substitutability Nishant Sinha Sagar Chaki Edmund Clarke Natasha Sharygina Carnegie Mellon University.
Finding bugs with a constraint solver daniel jackson. mandana vaziri mit laboratory for computer science issta 2000.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
© Anvesh Komuravelli Spacer Model Checking with Proofs and Counterexamples Anvesh Komuravelli Carnegie Mellon University Joint work with Arie Gurfinkel,
SAT for Software Model Checking Introduction to SAT-problem for newbie
Presentation Title 2/4/2018 Software Verification using Predicate Abstraction and Iterative Refinement: Part Bug Catching: Automated Program Verification.
Basic concepts of Model Checking
SS 2017 Software Verification Bounded Model Checking, Outlook
CSCI1600: Embedded and Real Time Software
Over-Approximating Boolean Programs with Unbounded Thread Creation
CSCI1600: Embedded and Real Time Software
50.530: Software Engineering
Scalability in Model Checking
Introduction to verification
Predicate Abstraction
SAT Based Abstraction/Refinement in Model-Checking
Presentation transcript:

Model Checking My 27 year quest to overcome the state explosion problem Edmund Clarke Computer Science Department Computer Science Department Carnegie Mellon University

Intel Pentium FDIV Bug Try – / * Try – / * –In 94’ Pentium, it doesn’t return 0, but 256. Intel uses the SRT algorithm for floating point division. Five entries in the lookup table are missing. Intel uses the SRT algorithm for floating point division. Five entries in the lookup table are missing. Cost: $500 million Cost: $500 million Xudong Zhao’s Thesis on Word Level Model Checking Xudong Zhao’s Thesis on Word Level Model Checking

Recent Rumor: New AMD TLB Bug?? AMD Family 10h revision B2 processors suffer from an issue in the processor TLB (Translation Lookaside Buffer). AMD Family 10h revision B2 processors suffer from an issue in the processor TLB (Translation Lookaside Buffer). Launch date of these processors was delayed in September, Launch date of these processors was delayed in September, AMD doesn’t have official announcement yet, but you can google “AMD Barcelona bug” for plenty of discussion. AMD doesn’t have official announcement yet, but you can google “AMD Barcelona bug” for plenty of discussion.

Temporal Logic Model Checking Temporal Logic Model Checking Model checking is an automatic verification technique for finite state concurrent systems. Model checking is an automatic verification technique for finite state concurrent systems. Developed independently by Clarke and Emerson and by Queille and Sifakis in early 1980’s. Developed independently by Clarke and Emerson and by Queille and Sifakis in early 1980’s. Specifications are written in propositional temporal logic. Specifications are written in propositional temporal logic. Verification procedure is an exhaustive search of the state space of the design. Verification procedure is an exhaustive search of the state space of the design.

Advantages of Model Checking Advantages of Model Checking No proofs!!! No proofs!!! Fast (compared to other rigorous methods such as theorem proving) Fast (compared to other rigorous methods such as theorem proving) Diagnostic counterexamples Diagnostic counterexamples No problem with partial specifications No problem with partial specifications Logics can easily express many concurrency properties Logics can easily express many concurrency properties

Main Disadvantage State Explosion Problem: 2-bit counter 0,0 0,1 1,1 1,0 n-bit counter has 2 n states

Main Disadvantage Contd a b c || n states, m threads 1,a 2,a 1,b 2,b 3,a 1,c 3,b 2,c 3,c n m states

Main Disadvantage Contd. State Explosion Problem: Unavoidable in worst case, but steady progress over the past 27 years using clever algorithms, data structures, and engineering

Determines Patterns on Infinite Traces Atomic Propositions Boolean Operations Temporal operators a “a is true now” X a “a is true in the neXt state” Fa “a will be true in the Future” Ga “a will be Globally true in the future” a U b “a will hold true Until b becomes true” LTL - Linear Time Logic a

Determines Patterns on Infinite Traces Atomic Propositions Boolean Operations Temporal operators a “a is true now” X a “a is true in the neXt state” Fa “a will be true in the Future” Ga “a will be Globally true in the future” a U b “a will hold true Until b becomes true” LTL - Linear Time Logic a

Determines Patterns on Infinite Traces Atomic Propositions Boolean Operations Temporal operators a “a is true now” X a “a is true in the neXt state” Fa “a will be true in the Future” Ga “a will be Globally true in the future” a U b “a will hold true Until b becomes true” LTL - Linear Time Logic a

Determines Patterns on Infinite Traces Atomic Propositions Boolean Operations Temporal operators a “a is true now” X a “a is true in the neXt state” Fa “a will be true in the Future” Ga “a will be Globally true in the future” a U b “a will hold true Until b becomes true” LTL - Linear Time Logic aaaaa

Determines Patterns on Infinite Traces Atomic Propositions Boolean Operations Temporal operators a “a is true now” X a “a is true in the neXt state” Fa “a will be true in the Future” Ga “a will be Globally true in the future” a U b “a will hold true Until b becomes true” LTL - Linear Time Logic aaaab

Branching Time

CTL: Computation Tree Logic EF g“g will possibly become true”

CTL: Computation Tree Logic AF g“g will necessarily become true”

CTL: Computation Tree Logic AG g“g is an invariant”

CTL: Computation Tree Logic EG g“g is a potential invariant”

CTL: Computation Tree Logic CTL uses the temporal operators AX, AG, AF, AU EX, EG, EF, EU CTL* allows complex nestings such as AXX, AGX, EXF,... AXX, AGX, EXF,... CTL: linear model checking algorithm !

Model Checking Problem Model Checking Problem Let M be a state-transition graph. Let M be a state-transition graph. Let ƒ be the specification in temporal logic. Let ƒ be the specification in temporal logic. Find all states s of M such that M, s |= ƒ. Find all states s of M such that M, s |= ƒ. CTL Model Checking: CE 81; CES 83/86; QS 81/82. CTL Model Checking: CE 81; CES 83/86; QS 81/82. LTL Model Checking: LP 85. LTL Model Checking: LP 85. Automata Theoretic LTL Model Checking: VW 86. Automata Theoretic LTL Model Checking: VW 86. CTL* Model Checking: EL 85. CTL* Model Checking: EL 85.

State-transition graph describes system evolving over time. Model of computation ~ Start ~ Close ~ Heat ~ Error Start ~ Close ~ Heat Error ~ Start Close ~ Heat ~ Error ~ Start Close Heat ~ Error Start Close Heat ~ Error Start Close ~ Heat ~ Error Start Close ~ Heat Error Microwave Oven Example

Temporal Logic and Model Checking The oven doesn’t heat up until the door is closed. The oven doesn’t heat up until the door is closed. Not heat_up holds until door_closed Not heat_up holds until door_closed (~ heat_up) U door_closed (~ heat_up) U door_closed

Transition System (Automaton, Kripke structure) Hardware Description (VERILOG, VHDL, SMV) Informal Specification Temporal Logic Formula (CTL, LTL, etc.) compilation manual algorithmic verification Model Checking

Hardware Example: IEEE Futurebus + In 1992 we used Model Checking to verify the IEEE Future+ cache coherence protocol. In 1992 we used Model Checking to verify the IEEE Future+ cache coherence protocol. Found a number of previously undetected errors in the design. Found a number of previously undetected errors in the design. First time that formal methods were used to find errors in an IEEE standard. First time that formal methods were used to find errors in an IEEE standard. Development of the protocol began in 1988, but previous attempts to validate it were informal. Development of the protocol began in 1988, but previous attempts to validate it were informal.

Symbolic Model Checking Symbolic Model Checking Burch, Clarke, McMillan, Dill, and Hwang 90; Burch, Clarke, McMillan, Dill, and Hwang 90; Ken McMillan’s thesis 92 Ken McMillan’s thesis 92 The Partial Order Reduction The Partial Order Reduction Valmari 90 Valmari 90 Godefroid 90 Godefroid 90 Peled 94 Peled 94 Four Big Breakthroughs on State Space Explosion Problem!

Four Big Breakthroughs on State Space Explosion Problem (Cont.) Bounded Model Checking Bounded Model Checking –Biere, Cimatti, Clarke, Zhu 99 –Using Fast SAT solvers –Can handle thousands of state elements of state elements Can the given property fail in k-steps? I(V 0 ) Æ T(V 0,V 1 ) Æ … Æ T(V k-1,V k ) Æ ( : P(V 0 ) Ç … Ç: P(V k )) k-steps Property fails in some step Initial state BMC in practice: Circuit with 9510 latches, 9499 inputs BMC formula has 4 £ 10 6 variables, 1.2 £ 10 7 clauses Shortest bug of length 37 found in 69 seconds

Four Big Breakthroughs on State Space Explosion Problem (Cont.) Localization Reduction Localization Reduction –Bob Kurshan 1994 Counterexample Guided Abstraction Refinement (CEGAR) Counterexample Guided Abstraction Refinement (CEGAR) –Clarke, Grumberg, Jha, Lu, Veith 2000 –Used in most software model checkers

From Hardware to Software: From Hardware to Software: Natural Question: Is it possible to model check software? Natural Question: Is it possible to model check software? According to Wired News on Nov 10, 2005: According to Wired News on Nov 10, 2005: “When Bill Gates announced that the technology was under development at the 2002 Windows Engineering Conference, he called it the holy grail of computer science” “When Bill Gates announced that the technology was under development at the 2002 Windows Engineering Conference, he called it the holy grail of computer science”

Grand Challenge: Model Check Software ! Software Model Checking What makes Software Model Checking different ?

What Makes Software Model Checking Different ? Large/unbounded base types: int, float, string Large/unbounded base types: int, float, string User-defined types/classes User-defined types/classes Pointers/aliasing + unbounded #’s of heap-allocated cells Pointers/aliasing + unbounded #’s of heap-allocated cells Procedure calls/recursion/calls through pointers/dynamic method lookup/overloading Procedure calls/recursion/calls through pointers/dynamic method lookup/overloading Concurrency + unbounded #’s of threads Concurrency + unbounded #’s of threads

What Makes Software Model Checking Different ? Templates/generics/include files Templates/generics/include files Interrupts/exceptions/callbacks Interrupts/exceptions/callbacks Use of secondary storage: files, databases Use of secondary storage: files, databases Absent source code for: libraries, system calls, mobile code Absent source code for: libraries, system calls, mobile code Esoteric features: continuations, self-modifying code Esoteric features: continuations, self-modifying code Size (e.g., MS Word = 1.4 MLOC) Size (e.g., MS Word = 1.4 MLOC)

What Does It Mean to Model Check Software? 1.Combine static analysis and model checking Use static analysis to extract a model K from a boolean abstraction of the program. Use static analysis to extract a model K from a boolean abstraction of the program. Then check that f is true in K (K ² f), where f is the specification of the program. Then check that f is true in K (K ² f), where f is the specification of the program. SLAM (Microsoft) SLAM (Microsoft) Bandera (Kansas State) Bandera (Kansas State) MAGIC, SATABS (CMU) MAGIC, SATABS (CMU) BLAST (Berkeley) BLAST (Berkeley) F-Soft (NEC) F-Soft (NEC)

What Does It Mean to Model Check Software? 2.Simulate program along all paths in computation tree ² Java PathFinder (NASA Ames) ² Source code + backtracking (e.g., Verisoft) ² Source code + symbolic execution + backtracking (e.g., MS/Intrinsa Prefix) (e.g., MS/Intrinsa Prefix) 3.Use finite-state machine to look for patterns in control-flow graph [Engler]

What Does It Mean to Model Check Software? 4.Design with Finite-State Software Models Finite state software models can act as “missing link” Finite state software models can act as “missing link” between transition graphs and complex software. between transition graphs and complex software. ² Statecharts ² Esterel

What Does It Mean to Model Check Software? 5.Use Bounded Model Checking and SAT [Kroening] ² Problem: How to compute set of reachable states? Fixpoint computation is too expensive. Fixpoint computation is too expensive. ² Restrict search to states that are reachable from initial state within fixed number n of transitions state within fixed number n of transitions ² Implemented by unwinding program and using SAT solver SAT solver

Key techniques for Software Model Checking Counterexample Guided Abstraction Refinement Counterexample Guided Abstraction Refinement - Kurshan, Yuan Lu, Clarke et al JACM, Ball et al - Kurshan, Yuan Lu, Clarke et al JACM, Ball et al - Uses counterexamples to refine abstraction - Uses counterexamples to refine abstraction Predicate Abstraction Predicate Abstraction - Graf and Saidi, Ball et al, Chaki et al, Kroening - Graf and Saidi, Ball et al, Chaki et al, Kroening - Keeps track of certain predicates on data - Keeps track of certain predicates on data - Captures relationship between variables - Captures relationship between variables

Transition System Informal Specification Temporal Logic Formula (CTL, LTL, etc.) Safety Property: bad state unreachable: satisfied Initial State Counterexamples Program

Transition System Program Informal Specification Temporal Logic Formula (CTL, LTL, etc.) Initial State Safety Property: bad state unreachable Counterexample Counterexamples

Transition System Program Informal Specification Temporal Logic Formula (CTL, LTL, etc.) Initial State Safety Property: bad state unreachable Counterexamples Counterexample

Existential Abstraction M MM Given an abstraction function  : S  S , the concrete states are grouped and mapped into abstract states :  Preservation Theorem ?

Preservation Theorem Theorem (Clarke, Grumberg, Long) If property holds on abstract model, it holds on concrete model Theorem (Clarke, Grumberg, Long) If property holds on abstract model, it holds on concrete model Technical conditions Technical conditions  Property is universal i.e., no existential quantifiers  Atomic formulas respect abstraction mapping Converse implication is not valid ! Converse implication is not valid !

Spurious Behavior AGAF red “Every path necessarily leads back to red.” Spurious Counterexample:... “red” “go” Artifact of the abstraction !

How to define Abstraction Functions? Abstraction too fine  State Explosion Abstraction too coarse  Information Loss Automatic Abstraction Methodology

Automatic Abstraction M Original Model Refinement MM Initial Abstraction Spurious counterexample Validation or Counterexample Correct !

CEGAR C ounter E xample- G uided A bstraction R efinement C Program InitialAbstraction Simulator No error or bug found Propertyholds Simulationsucessful Bug found Abstraction refinement Refinement Model CheckerVerification Spurious counterexample Counterexample Abstract Model

Software Example: Device Driver Code Also according to Wired News : Also according to Wired News : “Microsoft has developed a tool called Static Device Verifier or SDV, that uses ‘Model Checking’ to analyze the source code for Windows drivers and see if the code that the programmer wrote matches a mathematical model of what a Windows device driver should do. If the driver doesn’t match the model, the SDV warns that the driver might contain a bug.” “Microsoft has developed a tool called Static Device Verifier or SDV, that uses ‘Model Checking’ to analyze the source code for Windows drivers and see if the code that the programmer wrote matches a mathematical model of what a Windows device driver should do. If the driver doesn’t match the model, the SDV warns that the driver might contain a bug.”

Back to Hardware! Ease of design increases Gate level (netlists) Register Level ………… System Behavioral Formal verification support

Register Level Verilog: module counter_cell(clk, carry_in, carry_out); input clk; input carry_in; output carry_out; reg value; assign carry_out = value & carry_in; initial value = 0; clk) begin // value = (value + carry_in) % 2; case(value) 0: value = carry_in; 1: if (carry_in ==0) value = 1; else value = 0; endcase end endmodule Gate Level (netlist):.model counter_cell.inputs carry_in.outputs carry_out.names value carry_in _n2.def names _n2 carry_out$raw_n1 - =_n2.names value$raw_n3 0.names _n6 0.names value _n6 _n7.def r value$raw_n3 value 0 1 ….. (120 lines)

Lack of verification support Gate level (netlists) Register Level ………… System Behavioral use techniques from software verification Must be automatic and scalable!!

Model Checking at the Register Level Gate level (netlists) Register Level ………… System Behavioral Model check 

Abstraction-Refinement loop (CEGAR) C Program InitialAbstraction Simulator No error or bug found Propertyholds Simulationsucessful Bug found Abstraction refinement Refinement Model CheckerVerification Spurious counterexample Counterexample Abstract Model

Benchmarks Ethernet MAC from opencores.org Ethernet MAC from opencores.org 5000 lines of RTL Verilog 5000 lines of RTL Verilog Checked three properties: 1.Transmit module simulates state machine on left. (ETH0) 2.Checks transitions out of state BackOff (ETH1) 3.Checks transitions out of state Jam (ETH2) Defer IPG Preamble Data0 BackOff Jam Data1 FCS PAD Idle Transmit Module In Ethernet MAC (self-loop on each state not shown)

Experimental Results BenchmarkLatches Time (sec) #Preds#Iters ETH ETH ETH

Challenges for the Future Exploiting the Power of SAT, Satisfiability Modulo Theories (SMT) Exploiting the Power of SAT, Satisfiability Modulo Theories (SMT) Compositional Model Checking of both Hardware and Software Compositional Model Checking of both Hardware and Software Software Model Checking, Model Checking and Static Analysis Software Model Checking, Model Checking and Static Analysis Verification of Embedded Systems (Timed and Hybrid Automata) Verification of Embedded Systems (Timed and Hybrid Automata) Model Checking and Theorem Proving (PVS, STEP, SyMP, Maude) Model Checking and Theorem Proving (PVS, STEP, SyMP, Maude) Probabilistic and Statistical Model Checking Probabilistic and Statistical Model Checking Interpreting Counterexamples Interpreting Counterexamples Scaling up even more!! Scaling up even more!!

My goal: Verification of Safety-Critical Embedded Systems Do you trust your car? Embedded Systems are as important in Europe as Computer Security is in the U.S.!

Students, Post-docs, and Visitors Ph.D. Students: Sergey Berezin Sergey Berezin Michael Browne Michael Browne Jerry Burch Jerry Burch Sergio Campos Sergio Campos Sagar Chaki Sagar Chaki Pankaj Chauhan Pankaj Chauhan David Dill David Dill Allen Emerson Allen Emerson Alex Groce Alex Groce Anubhav Gupta Anubhav Gupta Vicki Hartonas-Garmhausen Vicki Hartonas-Garmhausen Himanshu Jain Himanshu Jain Sumit Jha Sumit Jha William Klieber William Klieber David Long David Long Yuan Lu Yuan Lu Dong Wang Dong Wang Will Marrero Will Marrero Ken McMillan Ken McMillan Marius Minea Marius Minea Bud Mishra Bud Mishra Christos Nikolaou Christos Nikolaou Nishant Sinha Nishant Sinha Prasad Sistla Prasad Sistla Muralidhar Talupur Muralidhar Talupur Xudong Zhao Xudong Zhao Post-docs: Constantinos Bartzis Armin Biere Lei Bu David Deharbe Alexandre Donze Azadeh Farzan Ansgar Fehnker Wolfgang Heinle Tamir Heyman James Kapinski Daniel Kroening Axel Legay Daniel Milam Alaexandar Nanevski Joel Ouaknine Karsten Schmidt Subash Shankar Ofer Strichman Prasanna Thati Micheal Theobald Tayssir Touili Helmut Veith Silke Wagner Karen Yorav Haifeng Zhu Yunshan Zhu Visitors: Y. Chen Y. Feng T. Filkorn M. Fujita P. Granger O. Grumberg H. Hamaguchi H. Hiraishi S. Kimura S. Krischner G.H. Kwon X. Li A. Platzer R. Raimi H. Schlingloff S. Shanker Y.Q. Sun T. Tang F. Tiplea Y. Tsay J.P. Vidal B. Wang F. Wang P. Williams W. Windsteiger Kwang Yi T. Yoneda

Questions?