MINLOG

MINLOG is a proof assistant and automated theorem prover based on minimal logic. It is developed primarily at the University of Munich. MINLOG focuses on extracting computational content from proofs, aiming to provide a practical approach to program synthesis from formal specifications.

Core Principles:

MINLOG is founded on the principle of proof interpretation, often referred to as the "formulas-as-types" or "Curry-Howard isomorphism." This isomorphism establishes a direct correspondence between logical proofs and executable programs. Specifically:

  • Proofs as Programs: A proof of a formula corresponds to a program that satisfies the specification represented by that formula.
  • Formulas as Types: A formula represents the type of the program derived from its proof.

Key Features:

  • Minimal Logic: MINLOG's core logic is minimal logic, a constructive logic which, unlike classical logic, does not rely on the law of excluded middle (p or not p). This constructiveness is crucial for extracting computational content from proofs.
  • Proof Extraction: MINLOG provides mechanisms to automatically extract programs from formal proofs. The extracted programs are guaranteed to satisfy the specification encoded in the proved formula.
  • Interactive Proof Development: MINLOG supports interactive proof construction, allowing users to guide the theorem proving process.
  • Automated Theorem Proving: MINLOG incorporates automated theorem proving techniques to assist in proof search and discovery.
  • Term Rewriting: MINLOG features a term rewriting system used for simplifying and normalizing terms during proof construction and program extraction.
  • Emphasis on Computability: MINLOG prioritizes computable solutions. The system focuses on extracting programs that are both correct and efficient.

Applications:

MINLOG is used in various areas including:

  • Program Synthesis: Deriving correct-by-construction programs from formal specifications.
  • Formal Verification: Verifying the correctness of existing programs by proving their adherence to formal specifications.
  • Mathematics: Formalizing mathematical proofs and extracting computational content from them.
  • Education: Teaching and exploring the relationship between logic and computation.

Current Status and Development:

MINLOG is actively developed and maintained. Its development is driven by research in proof theory, program synthesis, and formal verification. The system is continuously evolving with new features and improvements.

Browse

More topics to explore