Documentation

InfinitaryLogic.ModelTheory.NullaryTags

Nullary tags #

Expanding a language by countably many nullary relation symbols P_n, interpreted by a set X ⊆ ℕ (P_n holds iff n ∈ X), the same way in every structure considered. The signature L.withTags is fixed independently of X; only the interpretation varies.

Semantic invariance, for expansions with matching tags:

With differing tags the expansions are already inequivalent at level 0 (not_bfEquiv_tagged_of_ne): a nullary atom distinguishes them, on any carrier, including the empty one.

Nothing here is effective: the diagram reductions D(M̂) ≡_T X and A ≅ M̂ → X ≤_T D(A) are downstream statements about presentations, not about these semantic invariances.

The tag language #

Tag symbols: countably many at arity 0, none elsewhere.

Equations
Instances For

    The language of nullary tags.

    Equations
    Instances For
      @[reducible, inline]

      A language with nullary tags.

      Equations
      Instances For

        Tagged structures #

        The structure M expanded by the tags X.

        Equations
        Instances For
          @[instance_reducible]

          The tags: P_n holds iff n ∈ X; the tuple is ignored.

          Equations
          • One or more equations did not get rendered due to their size.

          Atoms #

          theorem FirstOrder.Language.sameAtomicType_tagged_iff {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) {n : ℕ} (a : Fin n → Tagged X M) (b : Fin n → Tagged X N) :

          Tagged atomic agreement is atomic agreement, for matching tags.

          Back-and-forth equivalence #

          theorem FirstOrder.Language.bfEquiv_tagged_iff {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) (α : Ordinal.{u_1}) {n : ℕ} (a : Fin n → Tagged X M) (b : Fin n → Tagged X N) :
          BFEquiv α n a b ↔ BFEquiv α n a b

          Back-and-forth equivalence is preserved and reflected by tagging with matching tags, at every level.

          theorem FirstOrder.Language.not_bfEquiv_tagged_of_ne {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {X Y : Set ℕ} {k : ℕ} (hk : (k ∈ X) ≠ (k ∈ Y)) {n : ℕ} (a : Fin n → Tagged X M) (b : Fin n → Tagged Y N) :
          ¬BFEquiv 0 n a b

          With differing tags, the expansions are inequivalent already at level 0, on any carrier.

          Isomorphisms #

          def FirstOrder.Language.Equiv.toTagged {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) (f : L.Equiv M N) :
          L.withTags.Equiv (Tagged X M) (Tagged X N)

          An isomorphism is one of the tagged expansions with matching tags.

          Equations
          Instances For
            def FirstOrder.Language.Equiv.ofTagged {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) (g : L.withTags.Equiv (Tagged X M) (Tagged X N)) :
            L.Equiv M N

            An isomorphism of tagged expansions is an isomorphism of the underlying structures.

            Equations
            Instances For
              def FirstOrder.Language.taggedEquivEquiv {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) :
              L.withTags.Equiv (Tagged X M) (Tagged X N) ≃ L.Equiv M N

              Isomorphisms are unchanged by tagging: the two notions correspond bijectively.

              Equations
              Instances For
                @[simp]
                theorem FirstOrder.Language.Equiv.toTagged_apply {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) (f : L.Equiv M N) (x : M) :
                (toTagged X f) x = f x
                @[simp]
                theorem FirstOrder.Language.Equiv.ofTagged_apply {L : Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (X : Set ℕ) (g : L.withTags.Equiv (Tagged X M) (Tagged X N)) (x : M) :
                (ofTagged X g) x = g x

                Ranks #

                theorem FirstOrder.Language.orbitRank_tagged {L : Language} {M : Type w} [L.Structure M] (X : Set ℕ) {n : ℕ} (a : Fin n → Tagged X M) :

                Orbit ranks are unchanged by tagging.

                Internal Scott ranks are unchanged by tagging.