First-order logic with partial fixed points
Lax134656.PartialFixedPoint · concepts/Lax134656/PartialFixedPoint.lean · lax-134656
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A simultaneous induction, a block of relation variables with a first-order step formula per variable and an output sentence, is read partially as follows. The partial iteration starts from the empty relations and at each stage replaces every relation by the set of tuples satisfying its step formula at the current stage: and . Nothing is accumulated, so the stages need not converge. The induction holds on a structure, read partially, when some stage is a fixed point of the step and the output sentence is true at it; a diverging iteration holds nowhere.
A decision problem over a vocabulary is FO(, PFP) definable when some simultaneous induction over holds partially, for every nonempty finite -structure and every linear order on , exactly when is a yes-instance of . It is order-free FO(PFP) definable, respectively order-free FO(IFP) definable, when some simultaneous induction over alone holds partially, respectively inflationarily, on every nonempty finite -structure exactly when it is a yes-instance: the notions the Abiteboul–Vianu theorem compares.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.ModelTheory.Order |
| 2 | import Mathlib.ModelTheory.Semantics |
| 3 | import Mathlib.Logic.Relation |
| 4 | import Mathlib.Dynamics.FixedPoints.Basic |
| 5 | import Lax904597.Problems |
| 6 | import Lax904597.Interpretations |
| 7 | import Lax904597.SecondOrder |
| 8 | import Lax535992.InflationaryFixedPoint |
| 9 | |
| 10 | /-! |
| 11 | --- |
| 12 | title: First-order logic with partial fixed points |
| 13 | type: definition |
| 14 | --- |
| 15 | A simultaneous induction, a block of relation variables with a first-order |
| 16 | step formula per variable and an output sentence, is read partially as |
| 17 | follows. The partial iteration starts from the empty relations and at each |
| 18 | stage replaces every relation by the set of tuples satisfying its step |
| 19 | formula at the current stage: and |
| 20 | . |
| 21 | Nothing is accumulated, so the stages need not converge. The induction holds |
| 22 | on a structure, read partially, when some stage is a fixed point of the |
| 23 | step and the output sentence is true at it; a diverging iteration holds |
| 24 | nowhere. |
| 25 | |
| 26 | A decision problem over a vocabulary is FO(, PFP) definable |
| 27 | when some simultaneous induction over holds partially, |
| 28 | for every nonempty finite -structure and every linear order on , |
| 29 | exactly when is a yes-instance of . It is order-free FO(PFP) |
| 30 | definable, respectively order-free FO(IFP) definable, when some |
| 31 | simultaneous induction over alone holds partially, respectively |
| 32 | inflationarily, on every nonempty finite -structure exactly when it is a |
| 33 | yes-instance: the notions the Abiteboul–Vianu theorem compares. |
| 34 | -/ |
| 35 | |
| 36 | namespace Lax134656.PartialFixedPoint |
| 37 | |
| 38 | open Lax535992.InflationaryFixedPoint Lax904597.Problems |
| 39 | |
| 40 | open FirstOrder |
| 41 | |
| 42 | open Language Structure |
| 43 | |
| 44 | open Function (IsFixedPt) |
| 45 | |
| 46 | namespace StepDef |
| 47 | |
| 48 | section Semantics |
| 49 | |
| 50 | variable {L : Language.{0, 0}} (d : StepDef L) {A : Type} [L.Structure A] |
| 51 | |
| 52 | variable (A) in |
| 53 | /-- The stages of the partial iteration. -/ |
| 54 | def partStage (n : ℕ) : d.B.Assignment A := |
| 55 | (d.next)^[n] (SOBlock.botAssign d.B A) |
| 56 | |
| 57 | end Semantics |
| 58 | |
| 59 | end StepDef |
| 60 | |
| 61 | /-- A decision problem is *order-free FO(IFP) definable* if, on nonempty |
| 62 | finite structures, it is the value of a simultaneous induction over its own |
| 63 | vocabulary, read inflationarily. This is the unordered notion the |
| 64 | Abiteboul–Vianu theorem is about. -/ |
| 65 | def IFPDefinableFree {L : Language.{0, 0}} [L.IsRelational] (P : DecisionProblem L) : Prop := |
| 66 | ∃ d : StepDef L, ∀ (A : Type) [L.Structure A] [Finite A] [Nonempty A], |
| 67 | P A ↔ d.IFPHolds A |
| 68 | |
| 69 | namespace StepDef |
| 70 | |
| 71 | /-- The value of a simultaneous induction read partially: some stage is a |
| 72 | fixed point of the step and satisfies the output sentence. All stable stages |
| 73 | are equal, so this says exactly «the iteration converges and its limit |
| 74 | satisfies the output». -/ |
| 75 | def PFPHolds {L : Language.{0, 0}} (d : StepDef L) (A : Type) [L.Structure A] : Prop := |
| 76 | ∃ n, IsFixedPt d.next (partStage d A n) ∧ |
| 77 | @Sentence.Realize _ A (SOBlock.structure₁ (L := L) d.B (partStage d A n)) d.out |
| 78 | |
| 79 | end StepDef |
| 80 | |
| 81 | /-- A decision problem is *order-free FO(PFP) definable* if, on nonempty |
| 82 | finite structures, it is the value of a simultaneous induction over its own |
| 83 | vocabulary, read partially. This is the unordered notion on the fixed-point |
| 84 | side of the Abiteboul–Vianu theorem. -/ |
| 85 | def PFPDefinableFree {L : Language.{0, 0}} [L.IsRelational] (P : DecisionProblem L) : Prop := |
| 86 | ∃ d : StepDef L, ∀ (A : Type) [L.Structure A] [Finite A] [Nonempty A], |
| 87 | P A ↔ StepDef.PFPHolds d A |
| 88 | |
| 89 | /-- A decision problem is *FO(≤, PFP) definable* if, on nonempty finite |
| 90 | ordered structures, it is the value of a simultaneous induction over the |
| 91 | ordered expansion of its vocabulary, read partially – for every linear order, |
| 92 | the problem itself never seeing it. -/ |
| 93 | def PFPDefinable {L : Language.{0, 0}} [L.IsRelational] (P : DecisionProblem L) : Prop := |
| 94 | ∃ d : StepDef (L.sum Language.order), |
| 95 | ∀ (A : Type) [L.Structure A] [LinearOrder A] [Finite A] [Nonempty A], |
| 96 | P A ↔ StepDef.PFPHolds d A |
| 97 | |
| 98 | end Lax134656.PartialFixedPoint |
| 99 |
Builds on
Used by
Lax134656.AbiteboulVianuLax134656.AbiteboulVianuOrderedLax134656.HierarchyInPSPACELax134656.InflationaryInPartialLax134656.PartialFixedPointCaptureLax134656.PartialFixedPointClosureLax134656.PSPACEClosureLax134656.PSPACEEqCoPSPACELax134656.QsatInvarianceLax134656.QsatPSPACECompleteLax134656.SpaceBoundedMachineInvarianceLax134656.SpaceMachinesPSPACECompleteLax134656.SuccinctReachInvarianceLax134656.SuccinctReachPSPACECompleteLax134656.TransitiveClosureWithoutOrder
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments