Locally constant functions #
This file sets up the theory of locally constant function from a topological space to a type.
Main definitions and constructions #
IsLocallyConstant f
: a mapf : X → Y
whereX
is a topological space is locally constant if every set inY
has an open preimage.LocallyConstant X Y
: the type of locally constant maps fromX
toY
LocallyConstant.map
: push-forward of locally constant mapsLocallyConstant.comap
: pull-back of locally constant maps
A function between topological spaces is locally constant if the preimage of any set is open.
Equations
- IsLocallyConstant f = ∀ (s : Set Y), IsOpen (f ⁻¹' s)
Instances For
A locally constant function is constant on any preconnected set.
If a composition of a function f
followed by an injection g
is locally
constant, then the locally constant property descends to f
.
A (bundled) locally constant function from a topological space X
to a type Y
.
- toFun : X → Y
The underlying function.
- isLocallyConstant : IsLocallyConstant self.toFun
The map is locally constant.
Instances For
The map is locally constant.
Equations
- LocallyConstant.instInhabited = { default := { toFun := Function.const X default, isLocallyConstant := ⋯ } }
Equations
- LocallyConstant.instFunLike = { coe := LocallyConstant.toFun, coe_injective' := ⋯ }
See Note [custom simps projections].
Equations
Instances For
We can turn a locally-constant function into a bundled ContinuousMap
.
Equations
- ↑f = { toFun := ⇑f, continuous_toFun := ⋯ }
Instances For
As a shorthand, LocallyConstant.toContinuousMap
is available as a coercion
Equations
- LocallyConstant.instCoeContinuousMap = { coe := LocallyConstant.toContinuousMap }
The constant locally constant function on X
with value y : Y
.
Equations
- LocallyConstant.const X y = { toFun := Function.const X y, isLocallyConstant := ⋯ }
Instances For
The locally constant function to Fin 2
associated to a clopen set.
Equations
- LocallyConstant.ofIsClopen hU = { toFun := fun (x : X) => if x ∈ U then 0 else 1, isLocallyConstant := ⋯ }
Instances For
Push forward of locally constant maps under any map, by post-composition.
Equations
- LocallyConstant.map f g = { toFun := f ∘ ⇑g, isLocallyConstant := ⋯ }
Instances For
Given a locally constant function to α → β
, construct a family of locally constant
functions with values in β indexed by α.
Equations
- f.flip a = LocallyConstant.map (fun (f : α → β) => f a) f
Instances For
If α is finite, this constructs a locally constant function to α → β
given a
family of locally constant functions with values in β indexed by α.
Equations
- LocallyConstant.unflip f = { toFun := fun (x : X) (a : α) => (f a) x, isLocallyConstant := ⋯ }
Instances For
Pull back of locally constant maps under a continuous map, by pre-composition.
Equations
- LocallyConstant.comap f g = { toFun := ⇑g ∘ ⇑f, isLocallyConstant := ⋯ }
Instances For
If a locally constant function factors through an injection, then it factors through a locally constant function.
Equations
- LocallyConstant.desc f h cond inj = { toFun := f, isLocallyConstant := ⋯ }
Instances For
Given a clopen set U
and a locally constant function f
,
LocallyConstant.indicator
returns the locally constant function that is f
on U
and 0
otherwise.
Equations
- f.indicator hU = { toFun := U.indicator ⇑f, isLocallyConstant := ⋯ }
Instances For
Given a clopen set U
and a locally constant function f
, LocallyConstant.mulIndicator
returns the locally constant function that is f
on U
and 1
otherwise.
Equations
- f.mulIndicator hU = { toFun := U.mulIndicator ⇑f, isLocallyConstant := ⋯ }
Instances For
The equivalence between LocallyConstant X Z
and LocallyConstant Y Z
given a
homeomorphism X ≃ₜ Y
Equations
- LocallyConstant.congrLeft e = { toFun := LocallyConstant.comap e.symm.toContinuousMap, invFun := LocallyConstant.comap e.toContinuousMap, left_inv := ⋯, right_inv := ⋯ }
Instances For
The equivalence between LocallyConstant X Y
and LocallyConstant X Z
given an
equivalence Y ≃ Z
Equations
- LocallyConstant.congrRight e = { toFun := LocallyConstant.map ⇑e, invFun := LocallyConstant.map ⇑e.symm, left_inv := ⋯, right_inv := ⋯ }
Instances For
The set of clopen subsets of a topological space is equivalent to the locally constant maps to a two-element set
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given two closed sets covering a topological space, and locally constant maps on these two sets, then if these two locally constant maps agree on the intersection, we get a piecewise defined locally constant map on the whole space.
TODO: Generalise this construction to ContinuousMap
.
Equations
- LocallyConstant.piecewise h₁ h₂ h f g hfg = { toFun := fun (i : X) => if hi : i ∈ C₁ then f ⟨i, hi⟩ else g ⟨i, ⋯⟩, isLocallyConstant := ⋯ }
Instances For
A variant of LocallyConstant.piecewise
where the two closed sets cover a subset.
TODO: Generalise this construction to ContinuousMap
.
Equations
- One or more equations did not get rendered due to their size.