LeanPool.DirectedTopologyLean4.DirectedHomotopy #
DirectedMap.Dihomotopy f₀ f₁ is the type of directed homotopies from f₀ to f₁.
- toFun : ↑unitInterval × X → Y
- continuous_toFun : Continuous self.toFun
Instances For
DirectedMap.DihomotopyLike F f₀ f₁ states that F is a type of homotopies between f₀ and
f₁
Instances
Equations
- DirectedMap.Dihomotopy.instFunLike = { coe := fun (f : f₀.Dihomotopy f₁) => f.toFun, coe_injective := ⋯ }
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
Currying a dihomotopy to a map fron I to D(X,Y).
Equations
- F.curry t = (↑F).prodConstFst t
Instances For
Currying a dihomotopy to a map fron X to D(I,Y).
Equations
- F.currySnd x = (↑F).prodConstSnd x
Instances For
Promote a continuous-map homotopy together with a proof of directedness to a dihomotopy.
Equations
- DirectedMap.Dihomotopy.homToDihom F HF = { toContinuousMap := F.toContinuousMap, directed_toFun := HF, map_zero_left := ⋯, map_one_left := ⋯ }
Instances For
Forget the directedness of a dihomotopy to obtain the underlying continuous-map homotopy.
Equations
- F.dihomToHom = { toContinuousMap := F.toContinuousMap, map_zero_left := ⋯, map_one_left := ⋯ }
Instances For
Equations
- DirectedMap.Dihomotopy.coeDihomToHom = { coe := fun (F : f₀.Dihomotopy f₁) => F.dihomToHom }
Evaluating dihomotopies at intermidiate points
Evaluating a dipath homotopy at an intermediate point in the left coordinate, giving us a
dipath.
Equations
- F.evalAtLeft t = { toFun := ⇑(F.curry t), continuous_toFun := ⋯, source' := ⋯, target' := ⋯, dipath_toPath := ⋯ }
Instances For
Given a dihomotopy H: f ∼ g, get the dipath traced by the point x as it moves from
f x to g x
Equations
- H.evalAtRight x = { toFun := fun (t : ↑unitInterval) => H (t, x), continuous_toFun := ⋯, source' := ⋯, target' := ⋯, dipath_toPath := ⋯ }
Instances For
Given a directed map f, we can define a Dihomotopy f f by F (t, x) = f x
The trivial reflexive dihomotopy F (t, x) = f x.
Equations
Instances For
Equations
The first half of a split dipath, stretched to the interval [2 t₀, 1].
Equations
- DirectedMap.Dihomotopy.FirstPartStretch γ hT ht₀ = { toFun := ⇑((SplitDipath.FirstPart γ T).stretchUp ⋯), continuous_toFun := ⋯, source' := ⋯, target' := ⋯, dipath_toPath := ⋯ }
Instances For
The second half of a split dipath, stretched to the interval [0, 2 t₁ - 1].
Equations
- DirectedMap.Dihomotopy.SecondPartStretch γ hT ht₁ = { toFun := ⇑((SplitDipath.SecondPart γ T).stretchDown ⋯), continuous_toFun := ⋯, source' := ⋯, target' := ⋯, dipath_toPath := ⋯ }
Instances For
Given Dihomotopy f₀ f₁ and Dihomotopy f₁ f₂, we can define a Dihomotopy f₀ f₂ by putting
the first dihomotopy on [0, 1/2] and the second on [1/2, 1].
Equations
- F.trans G = DirectedMap.Dihomotopy.homToDihom (F.dihomToHom.trans G.dihomToHom) ⋯
Instances For
Casting a Dihomotopy f₀ f₁ to a Dihomotopy g₀ g₁ where f₀ = g₀ and f₁ = g₁.
Equations
Instances For
If we have a Dihomotopy f₀ f₁ and a Dihomotopy g₀ g₁, then we can compose them and get a
Dihomotopy (g₀.comp f₀) (g₁.comp f₁).
Equations
Instances For
Given directed maps f₀ and f₁, we say f₀ and f₁ are PreDihomotopic if there exists a
Dihomotopy f₀ f₁.
Equations
- f₀.PreDihomotopic f₁ = Nonempty (f₀.Dihomotopy f₁)
Instances For
Given directed maps f₀ and f₁, we say f₀ and f₁ are Dihomotopic if there
is a chain of PreDihomotopic maps leading from f₀ to f₁.
In other words, Dihomotopic is the equivalence relation generated by PreDihomotopic.
Equations
- f₀.Dihomotopic f₁ = Relation.EqvGen DirectedMap.PreDihomotopic f₀ f₁
Instances For
The type of dihomotopies between f₀ f₁ : D(X,Y), where the intermediate maps satisfy the
predicate
P : D(X,Y) → Prop
- toFun : ↑unitInterval × X → Y
- continuous_toFun : Continuous self.toFun
- prop' (t : ↑unitInterval) : P (self.prodConstFst t)
Instances For
Equations
- DirectedMap.DihomotopyWith.instFunLike = { coe := fun (F : f₀.DihomotopyWith f₁ P) => ⇑F.toDihomotopy, coe_injective := ⋯ }
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
Given a directed map f, and a proof h : P f, we can define a DihomotopyWith f f P by F (t, x) = f x
Equations
- DirectedMap.DihomotopyWith.refl f hf = { toDihomotopy := DirectedMap.Dihomotopy.refl f, prop' := ⋯ }
Instances For
Equations
Given DihomotopyWith f₀ f₁ P and DihomotopyWith f₁ f₂ P, we can define a DihomotopyWith f₀ f₂ P
by putting the first dihomotopy on [0, 1/2] and the second on [1/2, 1].
Instances For
Casting a DihomotopyWith f₀ f₁ P to a DihomotopyWith g₀ g₁ P where f₀ = g₀ and f₁ = g₁.
Instances For
Given directed maps f₀ and f₁, we say f₀ and f₁ are pre_dihomotopic with respect to the
predicate P if there exists a DihomotopyWith f₀ f₁ P.
Equations
- DirectedMap.PreDihomotopicWith P f₀ f₁ = Nonempty (f₀.DihomotopyWith f₁ P)
Instances For
DihomotopicWith is the equivalence relation generated by PreDihomotopicWith.
Equations
- DirectedMap.DihomotopicWith P f₀ f₁ = Relation.EqvGen (DirectedMap.PreDihomotopicWith P) f₀ f₁
Instances For
A DihomotopyRel f₀ f₁ S is a dihomotopy between f₀ and f₁ which is fixed on the points in
S.
Equations
- f₀.DihomotopyRel f₁ S = f₀.DihomotopyWith f₁ fun (f : D(X,Y)) => ∀ x ∈ S, f x = f₀ x
Instances For
Given a map f : D(X,Y) and a set S, we can define a DihomotopyRel f f S by setting
F (t, x) = f x for all t. This is defined using DihomotopyWith.refl, but with the proof
filled in.
Equations
Instances For
Given DihomotopyRel f₀ f₁ S and DihomotopyRel f₁ f₂ S, we can define a DihomotopyRel f₀ f₂ S
by putting the first dihomotopy on [0, 1/2] and the second on [1/2, 1].
Instances For
Casting a DihomotopyRel f₀ f₁ S to a DihomotopyRel g₀ g₁ S where f₀ = g₀ and f₁ = g₁.
Instances For
Given directed maps f₀ and f₁, we say f₀ and f₁ are PreDihomotopic relative to a set S
if
there exists a DihomotopyRel f₀ f₁ S.
Equations
- DirectedMap.PreDihomotopicRel S f₀ f₁ = Nonempty (f₀.DihomotopyRel f₁ S)
Instances For
DihomotopicRel is the equivalence relation generated by PreDihomotopicRel.
Equations
- DirectedMap.DihomotopicRel S f₀ f₁ = Relation.EqvGen (DirectedMap.PreDihomotopicRel S) f₀ f₁