Numbering the elements of an interpreted structure #
A first-order interpretation I of dimension ι interprets, in a structure on Fin n, a structure
whose elements are the tuples ι → Fin n satisfying the domain formula. Fixing an enumeration
e : ι ≃ Fin d of the coordinates, a tuple has an index below n ^ d (Cslib.Logic.tupleIndex),
and the elements of the interpreted structure are numbered by the rank of their index among the
indices of the domain (Cslib.Logic.FO.Interpretation.rankEquiv): the number of indices of the
domain below it. This is the numbering an algorithm computes by counting, as a logarithmic-space
transducer for the interpretation does.
Main definitions #
Cslib.Logic.FO.Interpretation.InDomain: the indices of the tuples of the domain.Cslib.Logic.FO.Interpretation.domainRank: the number of indices of the domain below a number.Cslib.Logic.FO.Interpretation.rankEquiv: the numbering of the interpreted structure by ranks.
Main results #
Cslib.Logic.FO.Interpretation.domainRank_succ: ranks count the indices of the domain.Cslib.Logic.FO.Interpretation.rankEquiv_symm_val: the element of a given rank is the tuple whose index has that rank.
References #
The number u is the index of a tuple of the domain of I.
Instances For
The number of indices of tuples of the domain below u.
Instances For
Ranks count the indices of the domain: the rank of u + 1 is that of u, plus one when u
indexes a tuple of the domain.
The number of elements of the interpreted structure: the number of indices of the domain.
Instances For
The rank of the index of an element of the interpreted structure.
Instances For
Every rank below the number of elements is the rank of an index of the domain.
The numbering of the interpreted structure by ranks: an element is numbered by the number of indices of the domain below its index.
Instances For
The element of a given rank is the tuple whose index is in the domain and has that rank.