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.
tagLang: the language with nullary symbols indexed byℕand nothing else.L.withTags := L.sum tagLang.Tagged X M: the structureMexpanded by the tagsX(a type synonym carrying the expanded structure).
Semantic invariance, for expansions with matching tags:
bfEquiv_tagged_iff: back-and-forth equivalence is preserved and reflected at every level.Equiv.toTagged,Equiv.ofTagged,taggedEquivEquiv: isomorphisms (hence automorphisms) are the same before and after tagging.orbitRank_tagged,internalScottRank_tagged: the orbit rank of every tuple and the internal Scott rank are unchanged. (Tagged X McarriesM's ownL-structure, so the right-hand sides are the untagged ranks; the type synonym keeps both sides syntactically well-typed at every transparency.)
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
- FirstOrder.Language.tagLang = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.TagSym }
Instances For
A language with nullary tags.
Equations
Instances For
Tagged structures #
Atoms #
Back-and-forth equivalence #
Back-and-forth equivalence is preserved and reflected by tagging with matching tags, at every level.
With differing tags, the expansions are inequivalent already at level 0, on any carrier.
Isomorphisms #
An isomorphism is one of the tagged expansions with matching tags.
Equations
- FirstOrder.Language.Equiv.toTagged X f = { toEquiv := f.toEquiv, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
An isomorphism of tagged expansions is an isomorphism of the underlying structures.
Equations
- FirstOrder.Language.Equiv.ofTagged X g = { toEquiv := g.toEquiv, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Isomorphisms are unchanged by tagging: the two notions correspond bijectively.
Equations
- FirstOrder.Language.taggedEquivEquiv X = { toFun := FirstOrder.Language.Equiv.ofTagged X, invFun := FirstOrder.Language.Equiv.toTagged X, left_inv := ⋯, right_inv := ⋯ }