scrambled
Book

Software foundations

Modified just now
Children Date2024 DescriptionA machine-checked introduction to the mathematical underpinnings of reliable software. Uses the Rocq (Coq) proof assistant to teach logic, functional programming, operational semantics, and formal verification. JourneyProgramming Language Theory Tags
  • formal verification
  • Rocq
  • Coq
  • type theory
  • theorem proving
Urlhttps://softwarefoundations.cis.upenn.edu/
  • The mathematical underpinnings of reliable software.

    • Logic.
    • Computer-assisted theorem proving.
    • The Rocq prover.
    • Functional programming.
    • Operation semantics.
    • Logics and techniques for reasoning about programs.
    • Static type systems.
    • Property-based random testing.
    • Verification of practical C code.
  • Target audience:

    • Advanced undergraduates.
    • PhD students.
    • Researchers.
  • No background is assumed.

  • 100% formalized & machine-checked.

    Intended to be read alongside an interactive session with Rocq.

  • Building reliable software is hard:

    • The scale and complexity of modern systems.
    • The number of people involved.
    • The range of demands placed on them.
  • The cost of bugs and insecurities increases when information processing is tightly integrated into society.

  • Past responses to these problems from computer scientists and software engineers:

    • Recommendations about software projects teams management (e.g extreme programming).
    • Libraries' design philosophies (e.g. model-view-controller, publish-subscribe, etc.).
    • Programming languages' design philosophies (e.g. object-oriented programming, functional programming, etc.).
    • Mathematical techniques for specification and reasoning about properties of software.
    • Tools to validate these properties.

-> Software Foundations focuses on this last set of tools.