Lect1 Introduction
Lect1 Introduction
Lect1 Introduction
Textbook :
– Communication and Concurrency: Robin Milner
– Pi-calculus: Robin Milner, Available in Library
– Logic in computer science: Huth and Ryan
Available in Book Store
– Model Checking : Clarke, Grumberg, Peled
Available in Library
Lecture Slides
Assessment + Workload
Assessment Criteria
– Mid Semester – 20%
– Quizzes & Assignment – 15%
– Final Examination – 60%
– Attendance -5%
Workload
– Weekly reading : 4 hrs.
– Assignments & Quizzes: 2 hrs.
– Lectures : 4 hrs.
– TOTAL : 06 hrs. (approx) per Week excluding lectures
Motivation
Understanding ! Properties
! Modelling
! Formalisation
! PROOF!
Problems
– Undecidability: Applies to humans as well as machines
– Distribution: Complexity explodes
Engineering:
– How to get a satisfactory analysis with the resources (time,
space, people, machines) available
– Satisfactory: Correct, or good enough for trust
Why Software Systems?
Aircrafts, Trains,
Nuclear & Industrial Plants, Avionics
Life Support Systems
Quality of Computational Systems
= Quality of life
Example: auto-pilot
Problem:
“Design a part in auto-pilot that avoids collision with other
planes.”
Solution:
“When distance is 1km, give warning to other plane and notify
pilot. When distance is 300m, and no changes in the course of
other plane were noticed, go up to avoid collision”
Problem with solution
domain verify
speci-
fication
Developers
Application design
verify
Framework design
Architecture design
Validate
imple-
mentation
verify
config.
instance
Market needs needs validate
and needs
system
users
Why Use Formal Methods?
Theorem proving
– FOL, HOL, type theory, using formalised theories
– Problem of proof search
– Will not be covered
Model checking
– Automatic traversal of finite state machine graphs
– Efficient, but scalability issues
Floyd/Hoare logic
– Theorem proving for flow graphs/while programs
– Proof search, but more domain knowledge
– Will not be covered
Process algebra
– Reasoning about abstract processes
– Structured approach
The Field