The classes NL and coNL
Lax485149.ClassNL · concepts/Lax485149/ClassNL.lean · lax-485149
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
NL is the class of decision problems definable in the Krom fragment of existential second-order logic, which captures nondeterministic logarithmic space on ordered structures by a theorem of Grädel. Hardness is the cofinal hardness of the NP core: a problem is NL-hard when every problem it reduces to, by a relativized ordered first-order reduction, is reduced to by every problem of NL. coNL is the class of problems whose complement is in NL. NL-completeness is membership together with NL-hardness. No machine enters the definition.
Concept map
Lean source view on GitHub
| 1 | import Lax904597.Problems |
| 2 | import Lax904597.Classes |
| 3 | import Lax485149.Complement |
| 4 | import Lax485149.KromFragment |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: The classes NL and coNL |
| 9 | type: definition |
| 10 | --- |
| 11 | NL is the class of decision problems definable in the Krom fragment of |
| 12 | existential second-order logic, which captures nondeterministic logarithmic |
| 13 | space on ordered structures by a theorem of Grädel. Hardness is the cofinal |
| 14 | hardness of the NP core: a problem is NL-hard when every problem it reduces |
| 15 | to, by a relativized ordered first-order reduction, is reduced to by every |
| 16 | problem of NL. coNL is the class of problems whose complement is in NL. |
| 17 | NL-completeness is membership together with NL-hardness. No machine enters |
| 18 | the definition. |
| 19 | -/ |
| 20 | |
| 21 | namespace Lax485149.ClassNL |
| 22 | |
| 23 | open Lax904597.Problems Lax904597.Classes Lax485149.Complement Lax485149.KromFragment |
| 24 | |
| 25 | /-- **NL**: the class of the SO-Krom definable problems, with cofinal |
| 26 | hardness. -/ |
| 27 | def NL : ComplexityClass := |
| 28 | ComplexityClass.ofMem fun P => SigmaSOKromDefinable P |
| 29 | |
| 30 | /-- **coNL**: the problems whose complement is in NL. -/ |
| 31 | def coNL : ComplexityClass := |
| 32 | ComplexityClass.ofMem fun P => SigmaSOKromDefinable (DecisionProblem.compl P) |
| 33 | |
| 34 | end Lax485149.ClassNL |
| 35 |
Used by
Lax485149.DeterministicReachabilityInvarianceLax485149.FirstOrderInTransitiveClosureLax485149.ImmermanSzelepcsenyiLax485149.KromAndTransitiveClosureLax485149.LByAutomataLax485149.LClosureLax485149.LEqCoLLax485149.LSubsetNLLax485149.NLByAutomataLax485149.NLClosureLax485149.NLEqCoNLLax485149.NLIsTransitiveClosureLax485149.NLSubsetNPLax485149.ReachabilityInvarianceLax485149.ReachdLCompleteLax485149.ReachNLCompleteLax485149.TransitiveClosureClosureLax485149.TwoSatInvarianceLax485149.TwoSatNLCompleteLax485149.UnreachdLCompleteLax485149.UnreachNLComplete
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments