Documentation

LeanPool.InfinitaryLogic.Mathlib.ModelTheory.Infinitary.Syntax

Infinitary first-order formulas #

This file defines the syntax of L_{∞ω}: first-order formulas with conjunctions and disjunctions indexed by a fixed branching carrier ι, one per formula. L_{ω₁ω} is the definitional specialization ι := ℕ.

Design #

The infinitary constructors iSup/iInf branch over the single type parameter ι rather than quantifying over a fresh index type at every node. Consequences:

Main definitions #

inductive FirstOrder.Language.BoundedFormulaInf (L : Language) (ι : Type uι) (α : Type u') :
Type (max u v u' uι)

An infinitary bounded formula of L_{∞ω}, with infinitary conjunctions and disjunctions branching over the fixed carrier ι, free variables indexed by α, and n additional bound variables available.

Instances For
    @[reducible, inline]
    abbrev FirstOrder.Language.BoundedFormulaω (L : Language) (α : Type u') (n : ) :
    Type (max u v u')

    A bounded formula of L_{ω₁ω}: the definitional ι := ℕ specialization of BoundedFormulaInf. Its universe is exactly that of the finitary BoundedFormula.

    Equations
    Instances For
      @[reducible, inline]
      abbrev FirstOrder.Language.FormulaInf (L : Language) (ι : Type uι) (α : Type u') :
      Type (max u v u' uι)

      An L_{∞ω} formula: a bounded formula with no free bound variables.

      Equations
      Instances For
        @[reducible, inline]
        abbrev FirstOrder.Language.SentenceInf (L : Language) (ι : Type uι) :
        Type (max u v uι)

        An L_{∞ω} sentence: a formula with no free variables at all.

        Equations
        Instances For
          @[reducible, inline]
          abbrev FirstOrder.Language.Formulaω (L : Language) (α : Type u') :
          Type (max u v u')

          An L_{ω₁ω} formula.

          Routed through BoundedFormulaω rather than stated as FormulaInfα, though the two are the same type. Dot-notation resolution walks an abbreviation chain one unfolding at a time, trying each head constant's namespace in turn, so this routing keeps declarations in a downstream BoundedFormulaω namespace reachable as φ.op on an L_{ω₁ω} formula while the generic BoundedFormulaInf namespace stays reachable at the end of the chain.

          Equations
          Instances For
            @[reducible, inline]

            An L_{ω₁ω} sentence. Routed through Formulaω for the reason given there.

            Equations
            Instances For
              @[match_pattern]
              def FirstOrder.Language.BoundedFormulaInf.not {L : Language} {ι : Type uι} {α : Type u'} {n : } (φ : L.BoundedFormulaInf ι α n) :

              The negation of an infinitary formula.

              Equations
              Instances For
                @[match_pattern]
                def FirstOrder.Language.BoundedFormulaInf.ex {L : Language} {ι : Type uι} {α : Type u'} {n : } (φ : L.BoundedFormulaInf ι α (n + 1)) :

                Existential quantification over the last bound variable.

                Equations
                Instances For