C S 430

Download as PDF

Formal Verification

Computer ScienceCollege of Computational, Mathematical, & Physical Sciences

Course Description

Introduction to mathematical formalization and techniques to rigorously establish properties of data structures, functions, and whole programs, including imperative features. Students use a proof assistant embedding several languages including an advanced functional
language.

When Taught

Fall

Min

3

Fixed/Max

3

Fixed

3

Fixed

0
Prerequisite
Complete ANY of the following Courses:
  • 01500-001
    OR
    03605-008

Title

Formal Specification

Learning Outcome

Construct formal specifications for complex computer systems using mathematical logic. This rigorous process is intellectually enlarging, as it requires students to translate abstract requirements into precise, unambiguous structures that reveal the fundamental nature of a system.

Title

Property Verification

Learning Outcome

Use formal verification tools to prove critical properties and invariants of system specifications. This pursuit of absolute correctness is spiritually strengthening, as it teaches students to value and seek after provable truths that mirror the consistency of divine laws.

Title

Verification Toolsets

Learning Outcome

Apply a diverse range of automated tools, such as Model Checkers, SAT solvers, SMT solvers, and Theorem Provers, to identify system vulnerabilities. Mastering these advanced instruments is character building, requiring the patience and meticulous attention to detail necessary to ensure that mission-critical systems are truly safe and reliable.

Title

Correctness and Stewardship

Learning Outcome

Evaluate the correctness of digital infrastructures to prevent catastrophic failures in real-world applications. Developing the ability to verify that a system does exactly what it is intended to do is a form of stewardship, preparing students for a life of service where they protect the welfare and security of their communities.