Course Summary
In this course you will be introduced to best practices for the application of formal methods, a set of mathematically rigourous techniques for the formal specification, validation, and verification of safetycritical systems, of which aircraft and spacecraft are the prime example. We will explore the tools, techniques, and applications of formal methods, focusing on the aerospace domain. We will examine the latest research to gain an understanding of the current state of the art, including the capabilities and limitations of applying formal methods for systems analysis. Students will leave with a better understanding of realworld system specification, design, and verification, including why the FAA specifically calls out formal methods in certification requirements such as DO178B, DO178C, and DO254.
This course is intended to be a fun, interactive introduction to applying
formal analysis in the context of realworld systems. Handson learning, through the use of software tools
in homeworks and projects, will be emphasized. We will learn the real tools used at NASA, Boeing, Rockwell Collins, Honeywell, Airbus, and others. Students from all
areas of aerospace engineering, electrical and computer engineering, computer science,
and other engineering disciplines, are
encouraged to enroll.
Course Syllabus
Prerequisites
The prerequisite is mathematical maturity: Calculus II plus familiarity with discrete mathematics (or ability to learn them quickly from review material made available in the course).
Tools
You may either install these tools on your local machine or run them on ISU's remote linux servers. The tools can be run via a remote desktop connection (e.g., ssh Y X) to linuxremote1.engineering.iastate.edu thru linuxremote5.engineering.iastate.edu. There are also two aerospace linux servers that tend to have more free cycles: linuxremote1.aere.iastate.edu and linuxremote2.aere.iastate.edu. You must be oncampus or connected to the VPN from offcampus to reach these systems. For example, 'spin' and 'ispin' run from the command line. These applications are installed in /opt/Spin. All of the examples, documentation, etc. can be found there. PVS and nuXmv are also available on the linux remote servers.
Exam Dates
Midterm: 10/23
Final Project: (in lieu of final exam)
Project Requirements:

HERE

Optional git classroom link:

HERE

Project Proposal:

10/25

Project Midterm Report:

11/8 Give short midterm presentations on this day!

Project Presentations:

12/4:

12/6:

Friday Progress Reports:

11/2, 11/9, 11/16, 11/23, 11/30

Final Report:

During exam period (9:45am11:45am on Tuesday, 12/11)

Reading/Homeworks
Homework 0 (Review of Version Control and LaTeX primer): distributed 8/21 from
HERE
Homework 1 (Propositional Logic Review): distributed 8/23 from
HERE
 There is an appendix with additional definitions here.
Homework 2 (Temporal Logic): distributed 8/30 from
HERE
Homework 3: distributed 9/11 from
HERE
Homework 4: distributed 9/27. Submit
HERE
Homework 5: distributed 10/4. Submit
HERE
Homework 6: distributed 10/11. Submit
HERE
Choice of research paper for presention due via email: 10/16
Professor evaluation form for inclass presentations is available HERE
Student evaluation form for inclass presentations is available HERE
Here is some great advice on How to Give a Good Research Presentation.
Here is some great advice on How to Read a Paper.
Paper Presentation Schedule:
Each presentation should be approximately 30 minutes, including time for questions.
10/23  Midterm Examination 
10/25  Apoorva 
10/30  Demetrius & Vishal 
11/1  Michael & Chris 
11/6  Michaela & Oyendrila 
11/8  Midterm project report presentations 
11/27  Balaji & Mohammad 
11/29  Changri & Ryan 
12/4  Final project report presentations 
12/6  Final project report presentations 
Assignment Deadlines
Homework 0 due 8/23
Homework 1 due 8/30
Homework 2 due 9/11
Homework 3 due 9/27
Homework 4 due 10/4
Homework 5 due 10/11
Homework 6 due 10/18
Choice of research paper for inclass presentation due 10/16
Optional Textbooks

Use this for:
 good background on LTL: wellformed formulas, semantics, encoding English sentences, expressivity, normal forms, relationship to automata
 reactive system properties: safety, liveness, fairness
 specification and modeling of real systems
 deciding the truth of a temporal formula; related proof techniques including explicit model checking
 thorough chapter on Spin, including how to run it from the command line and a good Promela tutorial
 review of classical and propositional logic
 extensions including synthesizing software from specifications
Be cautious that:
 LTL is instead called PTL in this book; that is nonstandard
 LTL2BA is not the best tool; SPOT is far superior now: https://spot.lrde.epita.fr/
 URLs provided are outdated (no longer active or superseded by the state of the art)
 Spin chapter refers to outdated xspin (though only briefly)


Use this for:
 supplemental material on temporal logics (LTL, CTL, CTL*)
 background on automata as system models
 review of explicit and symbolic model checking
 reachability, safety, liveness, deadlockfreeness, fairness
 overview of modeling abstraction methods
 outofdate chapters on SPIN and SMV still have useful reviews of basic tool usage
 ideas for related formal methods, including timed automata models, additional tools
Be cautious that:
 This book is extremely out of date!
 LTL is the proper name for Linear Temporal Logic (book calls it PLTL)
 comparisons of LTL vs CTL/CTL* have been changed/been disproved
 SMV version described is no longer available; current tool is nuXmv
 Spin version described has been updated (xspin vs ispin)

LaTeX Resources
