The class DP
Lax564036.Difference · concepts/Lax564036/Difference.lean · lax-564036
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A decision problem is DP-definable when there are a -definable problem and a -definable problem over the same vocabulary such that, on nonempty finite structures, holds exactly when both and hold: the conjunction of an NP condition and a coNP condition, or equivalently the difference of two NP problems. DP is the class of the DP-definable problems, the class of Papadimitriou and Yannakakis, with the cofinal hardness of the NP core.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.ModelTheory.Semantics |
| 2 | import Lax904597.Problems |
| 3 | import Lax904597.SecondOrder |
| 4 | import Lax904597.Classes |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: The class DP |
| 9 | type: definition |
| 10 | --- |
| 11 | A decision problem is DP-definable when there are a |
| 12 | -definable problem and a -definable problem over |
| 13 | the same vocabulary such that, on nonempty finite structures, holds |
| 14 | exactly when both and hold: the conjunction of an NP condition and a |
| 15 | coNP condition, or equivalently the difference of two NP problems. DP is the |
| 16 | class of the DP-definable problems, the class of Papadimitriou and |
| 17 | Yannakakis, with the cofinal hardness of the NP core. |
| 18 | -/ |
| 19 | |
| 20 | namespace Lax564036.Difference |
| 21 | |
| 22 | open Lax904597.Problems Lax904597.SecondOrder Lax904597.Classes |
| 23 | |
| 24 | open FirstOrder |
| 25 | |
| 26 | open Language Structure |
| 27 | |
| 28 | /-- A decision problem is **DP-definable** if, on nonempty finite structures, |
| 29 | it is the conjunction of a `Σ₁`-definable and a `Π₁`-definable problem: an NP |
| 30 | condition and a coNP one, imposed together. Equivalently, it is the difference |
| 31 | `S \ Tᶜ` of two NP problems. -/ |
| 32 | def DPDefinable {L : Language.{0, 0}} [L.IsRelational] (P : DecisionProblem L) : Prop := |
| 33 | ∃ S T : DecisionProblem L, SigmaSODefinable 1 S ∧ PiSODefinable 1 T ∧ |
| 34 | ∀ (A : Type) [L.Structure A] [Finite A] [Nonempty A], P A ↔ (S A ∧ T A) |
| 35 | |
| 36 | /-- **DP**: the class of the DP-definable problems, with cofinal hardness. -/ |
| 37 | def DP : ComplexityClass := |
| 38 | ComplexityClass.ofMem fun P => DPDefinable P |
| 39 | |
| 40 | end Lax564036.Difference |
| 41 |
Used by
Lax564036.AlternatingMachineCompleteLax564036.AlternatingMachineInvarianceLax564036.CoNPClosureLax564036.DPClosureLax564036.DPInclusionsLax564036.HierarchyDualityLax564036.HierarchyInclusionsLax564036.PolynomialTimeInHierarchyLax564036.QbfCompleteLax564036.QuantifiedBooleanFormulasInvarianceLax564036.SatUnsatDPCompleteLax564036.SatUnsatInvarianceLax564036.TautCoNPCompleteLax564036.TautologyInvarianceLax564036.ThreeDnfTautCoNPCompleteLax564036.ThreeDnfTautologyInvariance
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments