The classes RE and co-RE
Lax624099.ClassRE · concepts/Lax624099/ClassRE.lean · lax-624099
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
RE is the class of decision problems definable in existential second-order logic with value invention, with the cofinal hardness of the NP core: a problem is RE-hard when every problem it reduces to, by a relativized ordered first-order reduction, is reduced to by every problem of RE. The complement of a decision problem has the no-instances of the problem as yes-instances, and co-RE is the class of problems whose complement is in RE. RE-completeness is membership together with RE-hardness.
Concept map
Lean source view on GitHub
| 1 | import Lax904597.Problems |
| 2 | import Lax904597.Classes |
| 3 | import Lax624099.ValueInvention |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: The classes RE and co-RE |
| 8 | type: definition |
| 9 | --- |
| 10 | RE is the class of decision problems definable in existential second-order |
| 11 | logic with value invention, with the cofinal hardness of the NP core: a |
| 12 | problem is RE-hard when every problem it reduces to, by a relativized ordered |
| 13 | first-order reduction, is reduced to by every problem of RE. The complement |
| 14 | of a decision problem has the no-instances of the problem as yes-instances, |
| 15 | and co-RE is the class of problems whose complement is in RE. RE-completeness |
| 16 | is membership together with RE-hardness. |
| 17 | -/ |
| 18 | |
| 19 | namespace Lax624099.ClassRE |
| 20 | |
| 21 | open Lax904597.Problems Lax904597.Classes Lax624099.ValueInvention |
| 22 | |
| 23 | open FirstOrder |
| 24 | |
| 25 | open Language |
| 26 | |
| 27 | /-- The complement of a decision problem: its yes-instances are the |
| 28 | no-instances of `P`. -/ |
| 29 | def DecisionProblem.compl {L : Language.{0, 0}} [L.IsRelational] |
| 30 | (P : DecisionProblem L) : |
| 31 | DecisionProblem L where |
| 32 | Holds := fun A inst => ¬@DecisionProblem.Holds L _ P A inst |
| 33 | iso_invariant := fun e => not_congr (P.iso_invariant e) |
| 34 | |
| 35 | /-- **RE**, the recursively enumerable problems: the class of the |
| 36 | `∃SO[new]`-definable problems, with cofinal hardness. -/ |
| 37 | noncomputable def RE : ComplexityClass := |
| 38 | ComplexityClass.ofMem fun P => SigmaSONewDefinable P |
| 39 | |
| 40 | /-- **co-RE**: the problems whose complement is recursively enumerable. -/ |
| 41 | noncomputable def coRE : ComplexityClass := |
| 42 | ComplexityClass.ofMem fun P => SigmaSONewDefinable (DecisionProblem.compl P) |
| 43 | |
| 44 | end Lax624099.ClassRE |
| 45 |
Used by
Lax624099.CodeHaltingInvarianceLax624099.CodehaltRECompleteLax624099.FiniteSatisfiabilityInvarianceLax624099.FinsatRECompleteLax624099.HaltingInvarianceLax624099.HaltingUndecidableLax624099.HaltRECompleteLax624099.NPSubsetRELax624099.PcpRECompleteLax624099.PcpUndecidableLax624099.PostCorrespondenceInvarianceLax624099.REClosureLax624099.ReductionsComputableLax624099.REFiniteLax624099.REHardUndecidableLax624099.REIsRecursivelyEnumerableLax624099.RENeCoRELax624099.Trakhtenbrot
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments