Documentation

LeanPool.InfinitaryLogic.Scott.AtomicDiagram

Atomic Diagrams for Relational Languages #

This file defines atomic types and atomic diagrams for relational first-order languages. These are the building blocks for Scott formulas.

Main Definitions #

Implementation Notes #

We restrict to relational languages (L.IsRelational) so that the atomic diagram of a finite tuple is determined by equality and relation holding information.

inductive FirstOrder.Language.AtomicIdx (L : Language) (n : ) :
Type (max u v)

Index type for atomic formulas in a relational language with n free variables. Either an equality between two variables, or a relation applied to variables.

Instances For

    Countable instance for AtomicIdx.

    def FirstOrder.Language.AtomicIdx.holds {L : Language} {M : Type w} [L.Structure M] {n : } (idx : L.AtomicIdx n) (a : Fin nM) :

    Evaluates whether an atomic formula indexed by idx holds for a tuple a.

    Equations
    Instances For

      The atomic formula as an Lω₁ω formula.

      Equations
      Instances For
        noncomputable def FirstOrder.Language.atomicDiagram {L : Language} {M : Type w} [L.Structure M] {n : } [Countable ((l : ) × L.Relations l)] (a : Fin nM) :

        The atomic diagram of a tuple: the conjunction over all atomic indices of either the atomic formula or its negation, depending on whether it holds.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def FirstOrder.Language.SameAtomicType {L : Language} {M : Type w} [L.Structure M] {n : } {N : Type w'} [L.Structure N] (a : Fin nM) (b : Fin nN) :

          Two tuples have the same atomic type if they satisfy exactly the same atomic formulas.

          Note on IsRelational: While this definition is well-formed without [L.IsRelational], the notion of "same atomic type" only captures the full atomic equivalence for relational languages. With function symbols, AtomicIdx doesn't cover terms built from functions, so this would be a weaker notion than the standard "same atomic type" in model theory. For Scott analysis, we restrict to relational languages where this captures the full notion.

          Equations
          Instances For
            theorem FirstOrder.Language.sameAtomicType_iff_realize_atomicDiagram {L : Language} {M : Type w} [L.Structure M] {n : } [Countable ((l : ) × L.Relations l)] {N : Type w'} [L.Structure N] (a : Fin nM) (b : Fin nN) :

            The correspondence between atomic diagrams and same atomic type.

            theorem FirstOrder.Language.SameAtomicType.refl {L : Language} {M : Type w} [L.Structure M] {n : } (a : Fin nM) :

            Same atomic type is reflexive.

            theorem FirstOrder.Language.SameAtomicType.symm {L : Language} {M : Type w} [L.Structure M] {n : } {N : Type w'} [L.Structure N] {a : Fin nM} {b : Fin nN} (h : SameAtomicType a b) :

            Same atomic type is symmetric.

            theorem FirstOrder.Language.SameAtomicType.trans {L : Language} {M : Type w} [L.Structure M] {n : } {N : Type u_1} {P : Type u_2} [L.Structure N] [L.Structure P] {a : Fin nM} {b : Fin nN} {c : Fin nP} (hab : SameAtomicType a b) (hbc : SameAtomicType b c) :

            Same atomic type is transitive.

            theorem FirstOrder.Language.SameAtomicType.relabel {L : Language} {M : Type w} [L.Structure M] {N : Type w'} [L.Structure N] {n m : } {a : Fin nM} {b : Fin nN} (h : SameAtomicType a b) (σ : Fin mFin n) :
            SameAtomicType (a σ) (b σ)

            Same atomic type is preserved under relabeling. If SameAtomicType a b and σ : Fin m → Fin n, then SameAtomicType (a ∘ σ) (b ∘ σ).