Documentation

LeanPool.InfinitaryLogic.Methods.Henkin.CountableCompletion.FairEnumeration

Fair enumeration for a fragment-relative consistency property (issue #8 tranche 2, commit 3) #

Generic over a universe U and a ConsistencyPropertyEqOn U: a finite consistent S₀ ⊆ U extends to a Henkin-complete S* ⊇ S₀. The schedule is a prefix sweepstage (n+1) processes requests 0,…,n starting from stage n — so, given a surjection e : ℕ → Request U, each request e k is processed during every sweep after k (fairness with no arithmetic about Nat.pair), while each sweep adds only finitely many sentences.

Branching / witness rules make a classical choice at the moment the request fires; the triggering sentence stays present, so re-processing is harmless. The union S* is never claimed to be in C.sets (Finding 1) — only that each closure target cohabits a later stage.

The remaining piece (the HenkinComplete Sstar acceptance theorem) is the per-field limit proof; it consumes request_fires_after plus per-request "what process adds" facts.

A scheduling request. Decomposition rules dispatch on the trigger's outermost shape; idx supplies the per-index parameter (component / instance / which negated-implication conclusion) and is ignored by the classical-choice rules.

Instances For

    The request type is countable when U and the relation symbols are.

    One processing step #

    @[reducible, inline]

    A member of the consistency family, bundled with its membership proof.

    Equations
    Instances For

      The prefix-sweep schedule #

      noncomputable def FirstOrder.Language.stage {L : Language} {U : Set (L.withConstants ).Sentenceω} {P : ConsistencyPropertyEqOn U} (e : Request U) (S₀ : SetIn P) :
      SetIn P

      stage (n+1) processes requests 0,…,n starting from stage n.

      Equations
      Instances For

        The limit of the enumeration.

        Equations
        Instances For

          The firing API #

          What each firing adds (process specs) #

          The limit is Henkin-complete #

          theorem FirstOrder.Language.exists_henkinComplete {L : Language} {U : Set (L.withConstants ).Sentenceω} {P : ConsistencyPropertyEqOn U} (S₀ : SetIn P) [Countable U] [Countable ((l : ) × L.Relations l)] :
          ∃ (Sstar : Set (L.withConstants ).Sentenceω), S₀Sstar SstarU HenkinComplete U Sstar

          Fair enumeration (the acceptance theorem): a consistent set in a ConsistencyPropertyEqOn U (over a countable U and countable relation symbols) extends to a Henkin-complete S* ⊇ S₀ inside U.