Semantic tautology proof systems #
Cook and Reckhow, The Relative Efficiency of Propositional Proof Systems, Journal of Symbolic Logic 44(1), 1979, Definition 1.3, p. 37 (PDF p. 3), define a proof system as a polynomial-time computable surjection onto a language.
This module isolates the surjection and proof-length layer. It deliberately does not claim polynomial-time computability; a later machine model will add that independent requirement to obtain a Cook-Reckhow system.
A tautology bundled with the semantic proof that every assignment satisfies it.
Equations
- ComplexityTheory.Tautology = { formula : ComplexityTheory.BooleanFormula // formula.IsTautology }
Instances For
The semantic core of a proof system for TAUT: every proof string produces a
tautology, and every tautology is produced by at least one proof string.
- produce : BitString → BooleanFormula
Return the formula named by a proof string.
- sound (proof : BitString) : (self.produce proof).IsTautology
Every output formula is a tautology.
- complete (formula : BooleanFormula) : formula.IsTautology → ∃ (proof : BitString), self.produce proof = formula
Every tautology occurs as an output.
Instances For
A string is a proof of formula when the proof map returns that formula.
Instances For
Every accepted proof proves a tautology, restating system soundness relationally.
Completeness supplies at least one proof of each bundled tautology.
Every tautology has some proof length at which a proof exists.
The minimum bit length of a proof of a tautology. This is noncomputable because the semantic structure does not yet provide a proof-search algorithm.
Instances For
A proof attaining proofCost exists for every tautology.
No proof of a tautology is shorter than its declared minimum proof cost.