Polish Space and Borel Space Structure on the Structure Space #
This file proves that StructureSpace L is a Polish space, a Borel space, and
a standard Borel space when the language has countably many relation symbols.
Strategy #
StructureSpace L = RelQuery L → Bool with the product topology. When
RelQuery L is countable, Encodable.ofCountable provides an encoding, and
Mathlib's instances for products of discrete spaces give:
CompactSpace,MetrizableSpace,SecondCountableTopology(fromPi.*)IsCompletelyMetrizableSpace(compact + metrizable → complete)PolishSpace=SecondCountableTopology+IsCompletelyMetrizableSpaceBorelSpace(product σ-algebra = Borel σ-algebra for second-countable spaces)StandardBorelSpace(fromPolishSpace+BorelSpace)
Since StructureSpace L is a def (not abbrev), type class resolution cannot
see through it. We provide the intermediate instances explicitly.
Main Results #
PolishSpace (StructureSpace L): The structure space is Polish.BorelSpace (StructureSpace L): The product σ-algebra equals the Borel σ-algebra.StandardBorelSpace (StructureSpace L): The structure space is standard Borel.- Analogous instances for the pair space
StructureSpace L × StructureSpace L.
Equations
RelQuery L is encodable when the language has countably many relation symbols.
This is the key ingredient for all topological instances.
Equations
The structure space is Polish: second-countable and completely metrizable.
This follows from StructureSpace L = RelQuery L → Bool being a countable product
of finite discrete spaces, hence compact and metrizable.
The product σ-algebra on the structure space equals the Borel σ-algebra.
The structure space is standard Borel (Polish + Borel).
The pair space StructureSpace L × StructureSpace L is Polish.
The pair space is Borel.
The pair space is standard Borel.