0% found this document useful (0 votes)
66 views46 pages

CS 228: Logic in Computer Science: Krishna. S

The document discusses formal methods in computer science and provides examples of software failures caused by programming errors. It summarizes several case studies where errors in safety-critical systems like medical devices and spacecraft led to injuries, deaths or losses. The document argues that formal verification techniques like model checking can help reduce such failures by enabling early and comprehensive testing of software.

Uploaded by

Invisible Bro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views46 pages

CS 228: Logic in Computer Science: Krishna. S

The document discusses formal methods in computer science and provides examples of software failures caused by programming errors. It summarizes several case studies where errors in safety-critical systems like medical devices and spacecraft led to injuries, deaths or losses. The document argues that formal verification techniques like model checking can help reduce such failures by enabling early and comprehensive testing of software.

Uploaded by

Invisible Bro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

CS 228 : Logic in Computer Science

Krishna. S

1/23
Some Real Life Stories

2/23
Therac-25(1987)

◮ The Therac-25 : radiation therapy machine produced by Atomic


Energy of Canada Limited (AECL)

3/23
Therac-25(1987)

◮ The Therac-25 : radiation therapy machine produced by Atomic


Energy of Canada Limited (AECL)
◮ Involved in at least six accidents, in which patients were given
massive overdoses of radiation, approximately 100 times the
intended dose.

3/23
Therac-25(1987)

◮ The Therac-25 : radiation therapy machine produced by Atomic


Energy of Canada Limited (AECL)
◮ Involved in at least six accidents, in which patients were given
massive overdoses of radiation, approximately 100 times the
intended dose.
◮ Design error in the control software (race condition)

3/23
Intel Pentium Bug (1994)

◮ The Intel FDIV bug : Bug in the intel P5 floating point unit

4/23
Intel Pentium Bug (1994)

◮ The Intel FDIV bug : Bug in the intel P5 floating point unit
◮ Discovered by a professor working on Brun’s constant
◮ ( 31 + 51 ) + ( 15 + 17 ) + ( 11
1
+ 1
13 )
1
+ ( 17 + 1
19 ) + . . . converges to

B = 1.90216054

4/23
Intel Pentium Bug (1994)

◮ The Intel FDIV bug : Bug in the intel P5 floating point unit
◮ Discovered by a professor working on Brun’s constant
◮ ( 31 + 51 ) + ( 15 + 17 ) + ( 11
1
+ 1
13 )
1
+ ( 17 + 1
19 ) + . . . converges to

B = 1.90216054
◮ Intel offered to replace all flawed processors

4/23
Ariane 5 (1996)

◮ ESA (European Space Agency) Ariane 5 Launcher

5/23
Ariane 5 (1996)

◮ ESA (European Space Agency) Ariane 5 Launcher


◮ Shown here in maiden flight on 4th June 1996

5/23
Ariane 5 (1996)

◮ ESA (European Space Agency) Ariane 5 Launcher


◮ Shown here in maiden flight on 4th June 1996
◮ Self destructs 37 secs later

5/23
Ariane 5 (1996)

◮ ESA (European Space Agency) Ariane 5 Launcher


◮ Shown here in maiden flight on 4th June 1996
◮ Self destructs 37 secs later
◮ uncaught exception: data conversion from 64-bit float to 16-bit
signed int
5/23
Toyota Prius (2010)

◮ First mass produced hybrid vehicle

6/23
Toyota Prius (2010)

◮ First mass produced hybrid vehicle


◮ software “glitch” found in anti-lock braking system
◮ Eventually fixed via software update in total 185,000 cars recalled,
at huge cost

6/23
Nest Thermostat (2016)

◮ Nest Thermostat, the smart, learning thermostat from Nest Labs

7/23
Nest Thermostat (2016)

◮ Nest Thermostat, the smart, learning thermostat from Nest Labs


◮ software “glitch” led several homes to a frozen state, reported in
NY times, Jan 13, 2016. May be, old fashioned mechanical
thermostats better!

7/23
What do these stories have in
common?

◮ Programmable computing devices


◮ conventional computers and networks
◮ software embedded in devices

8/23
What do these stories have in
common?

◮ Programmable computing devices


◮ conventional computers and networks
◮ software embedded in devices
◮ Programming error direct cause of failure
◮ Software critical
◮ for safety
◮ for business
◮ for performance

8/23
What do these stories have in
common?

◮ Programmable computing devices


◮ conventional computers and networks
◮ software embedded in devices
◮ Programming error direct cause of failure
◮ Software critical
◮ for safety
◮ for business
◮ for performance
◮ High costs incurred: financial, loss of life
◮ Failures avoidable

8/23
Formal Methods

Intuitive Description
“Applied Mathematics for modelling and analysing ICT systems”

Formal methods offer a large potential for:

9/23
Formal Methods

Intuitive Description
“Applied Mathematics for modelling and analysing ICT systems”

Formal methods offer a large potential for:


◮ obtaining an early integration of verification in the design process

9/23
Formal Methods

Intuitive Description
“Applied Mathematics for modelling and analysing ICT systems”

Formal methods offer a large potential for:


◮ obtaining an early integration of verification in the design process
◮ providing more effective verification techniques (higher coverage)

9/23
Formal Methods

Intuitive Description
“Applied Mathematics for modelling and analysing ICT systems”

Formal methods offer a large potential for:


◮ obtaining an early integration of verification in the design process
◮ providing more effective verification techniques (higher coverage)
◮ reducing the verification time

9/23
Simulation and Testing

Basic procedure
◮ Take a model
◮ Simulate it with certain inputs
◮ Observe what happens, and if this is desired

Important Drawbacks
◮ possible behaviours very large/infinite
◮ unexplored behaviours may contain fatal bug
◮ can show presence of errors, not their absence

10/23
Model Checking

◮ Year 2008 : ACM confers the Turing Award to the pioneers of


Model Checking: Ed Clarke, Allen Emerson, and Joseph Sifakis
◮ Why?

11/23
Model checking

◮ Model checking has evolved in last 25 years into a widely used


verification and debugging technique for software and hardware.
◮ Cost of not doing formal verification is high!
◮ The France Telecom example
◮ Ariane rocket: kaboom due to integer overflow!
◮ Toyota/Ford recalls

12/23
Model checking

◮ Model checking has evolved in last 25 years into a widely used


verification and debugging technique for software and hardware.
◮ Cost of not doing formal verification is high!
◮ The France Telecom example
◮ Ariane rocket: kaboom due to integer overflow!
◮ Toyota/Ford recalls

◮ Model checking used (and further developed) by


companies/institutes such as IBM, Intel, NASA, Cadence,
Microsoft, and Siemens, and has culminated in many freely
downloadable software tools that allow automated verification.

12/23
What is Model Checking?

System specification
satisfy?
good/bad properties

13/23
What is Model Checking?

System specification
satisfy?

model-checking
System Model Spec Model
|=?

13/23
Model Checker as a Black Box

◮ Inputs to Model checker : A finite state system M, and a property


P to be checked.
◮ Question : Does M satisfy P?
◮ Possible Outputs
◮ Yes, M satisfies P
◮ No, here is a counter example!.

14/23
What are Models?

Transition Systems
◮ States labeled with propositions
◮ Transition relation between states
◮ Action-labeled transitions to facilitate composition

15/23
What are Models?

Transition Systems
◮ States labeled with propositions
◮ Transition relation between states
◮ Action-labeled transitions to facilitate composition

Expressivity
◮ Programs are transition systems
◮ Multi-threading programs are transition systems
◮ Communicating processes are transition systems
◮ Hardware circuits are transition systems
◮ What else?

15/23
What are Properties?
Example properties
◮ Can the system reach a deadlock?
◮ Can two processes ever be together in a critical section?
◮ On termination, does a program provide correct output?

16/23
What are Properties?
Example properties
◮ Can the system reach a deadlock?
◮ Can two processes ever be together in a critical section?
◮ On termination, does a program provide correct output?

Logics of Relevance
◮ Classical Logics
◮ First Order Logic
◮ Monadic Second Order Logic
◮ Temporal Logics
◮ Propositional Logic, enriched with modal operators such as 2
(always) and 3 (eventually)
◮ Interpreted over state sequences (linear)
◮ Or over infinite trees (branching)

16/23
Two Traffic Lights

1. The traffic lights are never green simultaneously


∀x(¬(green1 (x) ∧ green2 (x))) or 2(¬(green1 ∧ green2 ))
2. The first traffic light is infinitely often green
∀x∃y(x < y ∧ green1 (y)) or 23green1
3. Between every two occurrences of traffic light 1 becoming red,
traffic light 2 becomes red once.

17/23
The Model Checking Process

◮ Modeling Phase
◮ model the system under consideration
◮ as a first sanity check, perform some simulations
◮ formalise property to be checked

18/23
The Model Checking Process

◮ Modeling Phase
◮ model the system under consideration
◮ as a first sanity check, perform some simulations
◮ formalise property to be checked
◮ Running Phase
◮ run the model checker to check the validity of the property in the
model

18/23
The Model Checking Process

◮ Modeling Phase
◮ model the system under consideration
◮ as a first sanity check, perform some simulations
◮ formalise property to be checked
◮ Running Phase
◮ run the model checker to check the validity of the property in the
model
◮ Analysis Phase
◮ property satisfied? → check next property (if any)
◮ property violated? →
◮ analyse generated counter example by simulation
◮ refine the model, design, property, . . . and repeat entire procedure
◮ out of memory? → try to reduce the model and try again

18/23
The Pros of Model Checking

◮ widely applicable (hardware, software...)


◮ allows for partial verification (only relevant properties)
◮ potential “push-button” technology (tools)
◮ rapidly increasing industrial interest
◮ in case of property violation, a counter example is provided
◮ sound mathematical foundations
◮ not biased to the most possible scenarios (like testing)

19/23
The Cons of Model Checking

◮ model checking is only as “good” as the system model


◮ no guarantee about completeness of results (incomplete
specifications)
Neverthless:
Model Checking is an effective technique to expose potential design
errors

20/23
Striking Model-Checking Examples

◮ Security : Needham-Schroeder encryption protocol


◮ error that remained undiscovered for 17 years revealed (model
checker SAL)
◮ Transportation Systems
◮ Train model containing 1047 states (model checker UPPAAL)
◮ Model Checkers for C, JAVA, C++
◮ used (and developed) by Microsoft, Intel, NASA
◮ successful application area: device drivers (model checker SLAM)
◮ Dutch storm surge barrier in Nieuwe Waterweg
◮ Software in current/next generation of space missiles
◮ NASA’s
◮ Java Pathfinder, Deep Space Habitat, Lab for Reliable Software

21/23
Relevant Topics

◮ What are appropriate models?


◮ from programs, circuits, communication protocols to transition
systems

22/23
Relevant Topics

◮ What are appropriate models?


◮ from programs, circuits, communication protocols to transition
systems
◮ What are properties?
◮ Safety, Liveness, fairness

22/23
Relevant Topics

◮ What are appropriate models?


◮ from programs, circuits, communication protocols to transition
systems
◮ What are properties?
◮ Safety, Liveness, fairness
◮ How to check regular properties?
◮ finite state automata and regular safety properties
◮ Buchi automata and ω-regular properties

22/23
Relevant Topics

◮ How to express properties succintly?


◮ First Order Logic (FO) : syntax, semantics
◮ Monadic Second Order Logic (MSO) : syntax, semantics
◮ Linear-Temporal-Logic (LTL) : syntax, semantics
◮ What can be expressed in each logic?
◮ Satisfiability and Model checking : algorithms, complexity

23/23
Relevant Topics

◮ How to express properties succintly?


◮ First Order Logic (FO) : syntax, semantics
◮ Monadic Second Order Logic (MSO) : syntax, semantics
◮ Linear-Temporal-Logic (LTL) : syntax, semantics
◮ What can be expressed in each logic?
◮ Satisfiability and Model checking : algorithms, complexity
◮ How to make models succint?
◮ Equivalences and partial-orders on transition systems
◮ Which properties are preserved?
◮ Minimization algorithms

23/23

You might also like