Decision problems on finite structures
Lax904597.Problems · concepts/Lax904597/Problems.lean · lax-904597
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A decision problem over a relational vocabulary is an isomorphism-invariant property of -structures: for each universe carrying an -structure, whether is a yes-instance, with the requirement that isomorphic structures are both yes-instances or both no-instances. Invariance is part of the notion, as in finite model theory: a problem cannot tell apart two presentations of the same structure. Finiteness is not built in; it is a hypothesis of every statement that needs it, and every complexity-theoretic notion below reads a problem on its finite instances only.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.ModelTheory.Semantics |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Decision problems on finite structures |
| 6 | type: definition |
| 7 | --- |
| 8 | A decision problem over a relational vocabulary is an |
| 9 | isomorphism-invariant property of -structures: for each universe |
| 10 | carrying an -structure, whether is a yes-instance, with the |
| 11 | requirement that isomorphic structures are both yes-instances or both |
| 12 | no-instances. Invariance is part of the notion, as in finite model theory: a |
| 13 | problem cannot tell apart two presentations of the same structure. |
| 14 | Finiteness is not built in; it is a hypothesis of every statement that needs |
| 15 | it, and every complexity-theoretic notion below reads a problem on its |
| 16 | finite instances only. |
| 17 | -/ |
| 18 | |
| 19 | namespace Lax904597.Problems |
| 20 | |
| 21 | open FirstOrder FirstOrder.Language |
| 22 | |
| 23 | /-- A decision problem: an isomorphism-closed property of `L`-structures, |
| 24 | whose yes-instances are the `L`-structures satisfying it. -/ |
| 25 | structure DecisionProblem (L : Language.{0, 0}) [L.IsRelational] where |
| 26 | /-- The predicate: `P A` (through the function coercion) states that the |
| 27 | structure `A` is a yes-instance. -/ |
| 28 | Holds : ∀ (A : Type) [L.Structure A], Prop |
| 29 | /-- Decision problems do not distinguish isomorphic structures. -/ |
| 30 | iso_invariant : ∀ {A B : Type} [L.Structure A] [L.Structure B], |
| 31 | (A ≃[L] B) → (Holds A ↔ Holds B) |
| 32 | |
| 33 | namespace DecisionProblem |
| 34 | |
| 35 | variable {L : Language.{0, 0}} [L.IsRelational] |
| 36 | |
| 37 | instance instCoeFun : CoeFun (DecisionProblem L) fun _ => ∀ (A : Type) [L.Structure A], Prop := |
| 38 | ⟨Holds⟩ |
| 39 | |
| 40 | end DecisionProblem |
| 41 | |
| 42 | end Lax904597.Problems |
| 43 |
Builds on
none
Used by
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments