Documentation

TauCeti.ModelTheory.RelationalConfiguration.Structure

Decoding relational configurations #

For a relational language, RelationalConfiguration.toStructure and the existing RelationalConfiguration.ofStructure identify configurations with all structures on the fixed carrier. Decoding is explicit: different configurations describe different structures on the same type. Empty carriers and nullary relations are included.

Equiv.encodeVia represents a structure on a bijective carrier. It preserves infinitary sentences, so structures in arbitrary universes can be represented on standard finite or countably infinite carriers. Transport reuses Mathlib's Equiv.inducedStructure and Equiv.inducedStructureEquiv.

@[instance_reducible]

Decode a configuration into a relational structure, without installing an instance.

Instances For
    @[simp]

    A decoded relation holds exactly when the corresponding atom is true.

    @[simp]

    Encoding after decoding recovers every configuration.

    @[simp]

    Decoding after encoding recovers the entire structure in a relational language.

    Configurations and relational structures on a fixed carrier are in bijection.

    Instances For
      noncomputable def Equiv.encodeVia {L : FirstOrder.Language} {M : Type w} {V : Type w'} [L.Structure M] (e : M ≃ V) :

      Encode a structure after transporting it along a bijection of carriers.

      Instances For
        @[simp]

        Transport reads a relation at the inverse image of its argument tuple.

        @[simp]

        Decoding a transported configuration gives exactly the induced structure.

        theorem Equiv.nonempty_equiv_encodeVia {L : FirstOrder.Language} {M : Type w} {V : Type w'} [L.Structure M] [L.IsRelational] (e : M ≃ V) :
        Nonempty (L.Equiv M V)

        A transported configuration names a structure isomorphic to the original in any universe.

        @[simp]

        Encoding through the identity is encoding the original structure.

        theorem Equiv.encodeVia_trans {L : FirstOrder.Language} {M : Type w} {V : Type w'} {W : Type w''} [L.Structure M] (e : M ≃ V) (f : V ≃ W) :

        Successive carrier transports agree with transport along the composite bijection.

        theorem Equiv.realize_encodeVia {L : FirstOrder.Language} {M : Type w} {V : Type w'} [L.Structure M] [L.IsRelational] {ι : Type uι} (e : M ≃ V) (φ : L.SentenceInf ι) :
        φ.Realize V ↔ φ.Realize M

        Carrier transport preserves every infinitary sentence, including on empty types.