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
Equations
- LocallyConstant.instInhabitedLocallyConstant = { default := { toFun := Function.const X default, isLocallyConstant := (_ : IsLocallyConstant (Function.const X default)) } }
Equations
- LocallyConstant.instFunLikeLocallyConstant = { coe := LocallyConstant.toFun, coe_injective' := (_ : ∀ ⦃a₁ a₂ : LocallyConstant X Y⦄, a₁.toFun = a₂.toFun → a₁ = a₂) }
See Note [custom simps projections].
Equations
Instances For
We can turn a locally-constant function into a bundled ContinuousMap
.
Equations
- ↑f = ContinuousMap.mk ⇑f
Instances For
As a shorthand, LocallyConstant.toContinuousMap
is available as a coercion
Equations
- LocallyConstant.instCoeLocallyConstantContinuousMap = { 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 := (_ : IsLocallyConstant (Function.const X y)) }
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 := (_ : IsLocallyConstant fun (x : X) => if x ∈ U then 0 else 1) }
Instances For
Push forward of locally constant maps under any map, by post-composition.
Equations
- LocallyConstant.map f g = { toFun := f ∘ ⇑g, isLocallyConstant := (_ : IsLocallyConstant (f ∘ g.toFun)) }
Instances For
Given a locally constant function to α → β
, construct a family of locally constant
functions with values in β indexed by α.
Equations
- LocallyConstant.flip f 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 := (_ : IsLocallyConstant fun (x : X) (a : α) => (f a) x) }
Instances For
Pull back of locally constant maps under any map, by pre-composition.
This definition only makes sense if f
is continuous,
in which case it sends locally constant functions to their precomposition with f
.
See also LocallyConstant.coe_comap
.
TODO: take f : C(X, Y)
as an argument? Or we actually use it for discontinuous f
?
Equations
- One or more equations did not get rendered due to their size.
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 := (_ : IsLocallyConstant f) }
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
- LocallyConstant.indicator f hU = { toFun := Set.indicator U ⇑f, isLocallyConstant := (_ : ∀ (s : Set R), IsOpen (Set.indicator U ⇑f ⁻¹' s)) }
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
- LocallyConstant.mulIndicator f hU = { toFun := Set.mulIndicator U ⇑f, isLocallyConstant := (_ : ∀ (s : Set R), IsOpen (Set.mulIndicator U ⇑f ⁻¹' s)) }
Instances For
The equivalence between LocallyConstant X Z
and LocallyConstant Y Z
given a
homeomorphism X ≃ₜ Y
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
- One or more equations did not get rendered due to their size.
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.