While this submission is a draft, it cannot be used by other submissions.

First-order logic with inflationary fixed points

Lax535992.InflationaryFixedPoint · concepts/Lax535992/InflationaryFixedPoint.lean · lax-535992

definition

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Definition

    A simultaneous induction over a vocabulary LL consists of a block of relation variables R1,…,RmR_1, \dots, R_m, a step formula φi(xˉ)\varphi_i(\bar x) for each variable, an arbitrary first-order formula over LL expanded by the block whose free variables are the arguments of RiR_i, and an output sentence over the same expanded vocabulary. On an LL-structure, the inflationary iteration starts from the empty relations and at each stage adds to every RiR_i the tuples satisfying φi\varphi_i at the current stage: Ri0=∅R_i^0 = \emptyset and Rin+1=Rin∪{aˉ∣φi(aˉ) holds at stage n}R_i^{n+1} = R_i^n \cup \{\bar a \mid \varphi_i(\bar a) \text{ holds at stage } n\}. Its limit is the union of the stages, and the induction holds on the structure, read inflationarily, when the output sentence is true at the limit. No positivity is required of the step formulas.

    A decision problem PP over LL is FO(≤\le, IFP) definable when some simultaneous induction over L∪{≤}L \cup \{\le\} holds inflationarily, for every nonempty finite LL-structure AA and every linear order on AA, exactly when AA is a yes-instance of PP.

    Concept map
    4 concepts; 16 descendants hidden
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    Lean source view on GitHub

    1import Mathlib.ModelTheory.Order
    2import Mathlib.ModelTheory.Semantics
    3import Mathlib.Logic.Function.Iterate
    4import Lax904597.Problems
    5import Lax904597.Interpretations
    6import Lax904597.SecondOrder
    7
    8/-!
    9---
    10title: First-order logic with inflationary fixed points
    11type: definition
    12---
    13A simultaneous induction over a vocabulary LL consists of a block of
    14relation variables R1,…,RmR_1, \dots, R_m, a step formula φi(xˉ)\varphi_i(\bar x)
    15for each variable, an arbitrary first-order formula over LL expanded by
    16the block whose free variables are the arguments of RiR_i, and an output
    17sentence over the same expanded vocabulary. On an LL-structure, the
    18inflationary iteration starts from the empty relations and at each stage
    19adds to every RiR_i the tuples satisfying φi\varphi_i at the current stage:
    20Ri0=∅R_i^0 = \emptyset and
    21Rin+1=Rin∪{aˉ∣φi(aˉ) holds at stage n}R_i^{n+1} = R_i^n \cup \{\bar a \mid \varphi_i(\bar a) \text{ holds at stage } n\}.
    22Its limit is the union of the stages, and the induction holds on the
    23structure, read inflationarily, when the output sentence is true at the
    24limit. No positivity is required of the step formulas.
    25
    26A decision problem PP over LL is FO(≤\le, IFP) definable when some
    27simultaneous induction over L∪{≤}L \cup \{\le\} holds inflationarily, for
    28every nonempty finite LL-structure AA and every linear order on AA,
    29exactly when AA is a yes-instance of PP.
    30-/
    31
    32namespace Lax535992.InflationaryFixedPoint
    33
    34open Lax904597.Problems Lax904597.SecondOrder
    35
    36open FirstOrder
    37
    38open Language Structure
    39
    40/-- The structure over `L` expanded by one copy of a block's vocabulary,
    41interpreted by an assignment. -/
    42@[reducible]
    43def SOBlock.structure₁ {L : Language.{0, 0}} (B : SOBlock) {A : Type} [inst : L.Structure A]
    44 (ρ : B.Assignment A) : (L.sum B.lang).Structure A :=
    45 @sumStructure L B.lang A inst (B.structure ρ)
    46
    47/-- The all-empty assignment of a block: the starting point of the
    48iteration. -/
    49def SOBlock.botAssign (B : SOBlock) (A : Type) : B.Assignment A :=
    50 fun _ _ => False
    51
    52/-- A simultaneous first-order induction: a block of relation variables, one
    53first-order step formula per variable – over the base vocabulary expanded by
    54the block, its free variables the arguments of the variable – and an output
    55sentence over the same expanded vocabulary, read at the value of the
    56iteration. The step formulas are *unrestricted*. -/
    57structure StepDef (L : Language.{0, 0}) : Type 1 where
    58 /-- The relation variables computed by the iteration. -/
    59 B : SOBlock
    60 /-- The step formula of each variable; its free variables are the arguments
    61 of the variable. -/
    62 step : ∀ i : B.ι, (L.sum B.lang).Formula (Fin (B.arity i))
    63 /-- The first-order output, over the expanded vocabulary – unrestricted, in
    64 particular free to negate fixed-point atoms. -/
    65 out : (L.sum B.lang).Sentence
    66
    67namespace StepDef
    68
    69variable {L : Language.{0, 0}} (d : StepDef L)
    70
    71section Semantics
    72
    73variable {A : Type} [L.Structure A]
    74
    75/-- One application of the step formulas to an assignment. -/
    76def next (ρ : d.B.Assignment A) : d.B.Assignment A :=
    77 fun i x => @Formula.Realize _ A (SOBlock.structure₁ (L := L) d.B ρ) _ (d.step i) x
    78
    79/-- The inflationary step: accumulate the step formulas into the previous
    80stage. -/
    81def inflStep (ρ : d.B.Assignment A) : d.B.Assignment A :=
    82 fun i x => ρ i x ∨ d.next ρ i x
    83
    84variable (A) in
    85/-- The stages of the inflationary iteration. -/
    86def inflStage (n : ℕ) : d.B.Assignment A :=
    87 (d.inflStep)^[n] (SOBlock.botAssign d.B A)
    88
    89variable (A) in
    90/-- The value of the inflationary iteration: the union of the stages. -/
    91def inflLimit : d.B.Assignment A :=
    92 fun i x => ∃ n, d.inflStage A n i x
    93
    94end Semantics
    95
    96/-- The value of a simultaneous induction read inflationarily: the output
    97sentence, at the limit of the inflationary iteration. -/
    98def IFPHolds (d : StepDef L) (A : Type) [L.Structure A] : Prop :=
    99 @Sentence.Realize _ A (SOBlock.structure₁ (L := L) d.B (d.inflLimit A)) d.out
    100
    101end StepDef
    102
    103/-- A decision problem is *FO(≤, IFP) definable* if, on nonempty finite
    104ordered structures, it is the value of a simultaneous induction over the
    105ordered expansion of its vocabulary, read inflationarily. The equivalence is
    106required for every linear order, so the notion is order-invariant: the
    107formulas see the order, the problem does not. -/
    108def IFPDefinable {L : Language.{0, 0}} [L.IsRelational] (P : DecisionProblem L) : Prop :=
    109 ∃ d : StepDef (L.sum Language.order),
    110 ∀ (A : Type) [L.Structure A] [LinearOrder A] [Finite A] [Nonempty A],
    111 P A ↔ d.IFPHolds A
    112
    113end Lax535992.InflationaryFixedPoint
    114

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…