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.
Decode a configuration into a relational structure, without installing an instance.
Instances For
A decoded relation holds exactly when the corresponding atom is true.
Encoding after decoding recovers every configuration.
Decoding after encoding recovers the entire structure in a relational language.
Configurations and relational structures on a fixed carrier are in bijection.
Instances For
Encode a structure after transporting it along a bijection of carriers.
Instances For
Transport reads a relation at the inverse image of its argument tuple.
Decoding a transported configuration gives exactly the induced structure.
A transported configuration names a structure isomorphic to the original in any universe.
Encoding through the identity is encoding the original structure.
Carrier transport preserves every infinitary sentence, including on empty types.