Tautology of DNF formulas
Lax564036.Tautology · concepts/Lax564036/Tautology.lean · lax-564036
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
An instance is a structure over the vocabulary of CNF instances of the NP core, read here as a formula in disjunctive normal form: its clauses are terms, conjunctions of literals. It is a tautology when every assignment of truth values to its elements satisfies all the literals of some term. TAUT is the decision problem of the structures isomorphic to a tautology.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.ModelTheory.Semantics |
| 2 | import Lax904597.Problems |
| 3 | import Lax485149.Problems |
| 4 | import Lax904597.Sat |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: Tautology of DNF formulas |
| 9 | type: definition |
| 10 | --- |
| 11 | An instance is a structure over the vocabulary of CNF instances of the NP |
| 12 | core, read here as a formula in disjunctive normal form: its clauses are |
| 13 | terms, conjunctions of literals. It is a tautology when every assignment of |
| 14 | truth values to its elements satisfies all the literals of some term. TAUT |
| 15 | is the decision problem of the structures isomorphic to a tautology. |
| 16 | -/ |
| 17 | |
| 18 | namespace Lax564036.Tautology |
| 19 | |
| 20 | open Lax904597.Problems Lax485149.Problems |
| 21 | |
| 22 | open Lax904597.Sat |
| 23 | |
| 24 | open FirstOrder |
| 25 | |
| 26 | open Language Structure BoundedFormula |
| 27 | |
| 28 | section Taut |
| 29 | |
| 30 | variable (A : Type) [sat.Structure A] |
| 31 | |
| 32 | /-- A CNF instance of the NP core, read as a formula in disjunctive normal form, |
| 33 | is a *tautology* when every assignment of truth values to its elements makes |
| 34 | some term true – that is, satisfies every literal of that term. (Elements that |
| 35 | are not variables of the formula may be assigned arbitrarily; they are harmless |
| 36 | since no term mentions them.) -/ |
| 37 | def Tautology : Prop := |
| 38 | ∀ ν : A → Prop, ∃ c : A, RelMap satIsClause ![c] ∧ |
| 39 | ∀ x : A, (RelMap satPosIn ![c, x] → ν x) ∧ (RelMap satNegIn ![c, x] → ¬ν x) |
| 40 | |
| 41 | end Taut |
| 42 | |
| 43 | /-- TAUT: is the instance, read as a formula in disjunctive normal form, a |
| 44 | tautology? -/ |
| 45 | def TAUT : DecisionProblem sat := DecisionProblem.ofPred fun A _ => Tautology A |
| 46 | |
| 47 | end Lax564036.Tautology |
| 48 |
Used by
Lax564036.AlternatingMachineCompleteLax564036.AlternatingMachineInvarianceLax564036.CoNPClosureLax564036.DPClosureLax564036.DPInclusionsLax564036.HierarchyDualityLax564036.HierarchyInclusionsLax564036.PolynomialTimeInHierarchyLax564036.QbfCompleteLax564036.QuantifiedBooleanFormulasInvarianceLax564036.SatUnsatDPCompleteLax564036.SatUnsatInvarianceLax564036.TautCoNPCompleteLax564036.TautologyInvarianceLax564036.ThreeDnfTautCoNPCompleteLax564036.ThreeDnfTautologyLax564036.ThreeDnfTautologyInvariance
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments