The exponential classes
Lax480241.ExponentialClasses · concepts/Lax480241/ExponentialClasses.lean · lax-480241
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A problem is definable in a class one exponential up when an exponential expansion and a problem of over its vocabulary are such that holds exactly when does, for every nonempty finite structure and every linear order on it; these problems form the class , with cofinal hardness. EXPTIME and EXPSPACE are the classes of the problems definable in SO(≤, LFP) and in SO(≤, PFP), NEXPTIME is NP, and coEXPTIME and coEXPSPACE are the classes of the complements of their problems.
Concept map
Lean source view on GitHub
| 1 | import Lax904597.Problems |
| 2 | import Lax904597.Classes |
| 3 | import Lax485149.Problems |
| 4 | import Lax485149.Complement |
| 5 | import Lax480241.Expansions |
| 6 | import Lax480241.SecondOrderFixedPoints |
| 7 | |
| 8 | /-! |
| 9 | --- |
| 10 | title: The exponential classes |
| 11 | type: definition |
| 12 | --- |
| 13 | A problem is definable in a class one exponential up when an |
| 14 | exponential expansion and a problem of over its vocabulary are |
| 15 | such that holds exactly when does, for every nonempty |
| 16 | finite structure and every linear order on it; these problems form the |
| 17 | class , with cofinal hardness. EXPTIME and EXPSPACE are the |
| 18 | classes of the problems definable in SO(≤, LFP) and in SO(≤, PFP), NEXPTIME |
| 19 | is NP, and coEXPTIME and coEXPSPACE are the classes of the |
| 20 | complements of their problems. |
| 21 | -/ |
| 22 | |
| 23 | namespace Lax480241.ExponentialClasses |
| 24 | |
| 25 | open FirstOrder FirstOrder.Language |
| 26 | open Lax904597.Problems Lax904597.Classes Lax485149.Complement |
| 27 | open Lax480241.Expansions Lax480241.SecondOrderFixedPoints |
| 28 | |
| 29 | /-- **Definability one exponential up**: some expansion turns the problem into a |
| 30 | problem of the class. -/ |
| 31 | def ExpDefinable (C : ComplexityClass) {L : Language.{0, 0}} [L.IsRelational] |
| 32 | (P : DecisionProblem L) : Prop := |
| 33 | ∃ (X : ExpExpansion L) (Q : DecisionProblem X.E), C.Mem Q ∧ |
| 34 | ∀ (A : Type) [L.Structure A] [LinearOrder A] [Finite A] [Nonempty A], P A ↔ Q (X.Map A) |
| 35 | |
| 36 | /-- **The exponential of a class**: the problems definable in it one exponential |
| 37 | up, with cofinal hardness. -/ |
| 38 | def expClass (C : ComplexityClass) : ComplexityClass := |
| 39 | ComplexityClass.ofMem fun P => ExpDefinable C P |
| 40 | |
| 41 | /-- **EXPTIME**: the problems definable in SO(≤, LFP). -/ |
| 42 | def EXPTIME : ComplexityClass := |
| 43 | ComplexityClass.ofMem fun P => SOLFPDefinable P |
| 44 | |
| 45 | /-- **EXPSPACE**: the problems definable in SO(≤, PFP). -/ |
| 46 | def EXPSPACE : ComplexityClass := |
| 47 | ComplexityClass.ofMem fun P => SOPFPDefinable P |
| 48 | |
| 49 | /-- **NEXPTIME**: NP read one exponential up. -/ |
| 50 | def NEXPTIME : ComplexityClass := |
| 51 | expClass NP |
| 52 | |
| 53 | /-- **coEXPTIME**: the complements of the problems of EXPTIME. -/ |
| 54 | def coEXPTIME : ComplexityClass := |
| 55 | ComplexityClass.ofMem fun P => EXPTIME.Mem (DecisionProblem.compl P) |
| 56 | |
| 57 | /-- **coEXPSPACE**: the complements of the problems of EXPSPACE. -/ |
| 58 | def coEXPSPACE : ComplexityClass := |
| 59 | ComplexityClass.ofMem fun P => EXPSPACE.Mem (DecisionProblem.compl P) |
| 60 | |
| 61 | end Lax480241.ExponentialClasses |
| 62 |
Builds on
Used by
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments