Back close

Course Detail

Course Name Formal Verification
Course Code 23CSE464
Program B. Tech. in Computer Science and Engineering (CSE)
Credits 3
Campus Amritapuri ,Coimbatore,Bengaluru, Amaravati, Chennai

Syllabus

General Electives
Unit I

Proving the correctness of sequential programs with respect to a given contract: verification rules and application examples, partial and total correctness. Verification of simple C programs using tools such as Alt-Ergo and Frama-C.

Unit II

Specifying the input-output contract of a sequential program using logical formulae with bounded quantifiers. Applying the Weakest Preconditions calculus for deriving verification conditions for programs with well-structured control and linear data structures. Formulating loop invariants for iterative programs. Applying the technique for programs such as sorting and searching.

Unit III

Developing finite-state models for concurrent programs and specifying their behavioural correctness using propositional temporal logic. Defining models using a language such as PROMELA and checking their correctness using SPIN. Applying the technique to check safety properties, such as mutual exclusion and absence of deadlock, and liveness properties such as responsiveness to requests.

Objectives and Outcomes

Course Objectives

  • The course aims at teaching students to reason about software verification from a formal standpoint.
  • It exposes the students to use tools and techniques to ascertain functional and behavioural correctness for sequential as well as concurrent programs.

Course Outcomes

CO1: Understand the necessity of proving correctness of programs with respect to formal specification.

CO2: Apply program verification techniques to prove and analyze correctness of programs.

CO3: Understand the problems associated with concurrent programs and their effects on their behavioral

correctness.

CO4: Understand and use a few state-of-the-art tools to model and verify sequential and concurrent systems.

CO-PO Mapping

 PO/PSO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2
CO
CO1 2 1 1 3 3 2
CO2 3 2 2 2 2 3 2 3 2
CO 3 2 1 1 3 2 3 2
CO4 3 2 2 2 2 3 2 3 2

Evaluation Pattern

Evaluation Pattern: 70:30

Assessment Internal End Semester
MidTerm Exam 20
Continuous Assessment – Theory (*CAT) 10
Continuous Assessment – Lab (*CAL) 40
**End Semester 30 (50 Marks; 2 hours exam)

*CAT – Can be Quizzes, Assignments, and Reports

*CAL – Can be Lab Assessments, Project, and Report

**End Semester can be theory examination/ lab-based examination/ project presentation

Text Books / References

Textbook(s)

Allan Blanchard, “Introduction to C program proof with Frama-C and its WP plugin”, 2020.

Reference(s)

Huth M, Ryan M. “Logic in Computer Science”. Second Edition, Cambridge University Press; 2004.

Jose Bacelar Almeida et al., “Rigorous Software Development: An Introduction to Program Verification”, Springer-Verlag London, 2011, ISBN: 978-0-85729- 017-5.

  1. Berard et al., “Systems and Software Verification: Model Checking Techniques and Tools”, Springer-Verlag, 2001, ISBN: 3-540-41523-8.

Ben-Ari M, “Principles of the Spin model checker”, 2008 edition, Springer Science & Business Media; 2008.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now