LeanPool.DirectedTopologyLean4.DirectedPathHomotopy #
The type of dihomotopies between two directed paths.
Equations
- p₀.Dihomotopy p₁ = p₀.toDirectedMap.DihomotopyRel p₁.toDirectedMap {0, 1}
Instances For
A F : Dihomotopy ↑p₁ ↑p₂ between two dipaths p₁ p₂ : Dipath y z can be coerced into a
dihomotopy,
if it is directed
Equations
- Dipath.Dihomotopy.homToDihom F HF = { toContinuousMap := F.toContinuousMap, directed_toFun := HF, map_zero_left := ⋯, map_one_left := ⋯, prop' := ⋯ }
Instances For
A Dihomotopy F between two Dipaths p₁ p₂ can be coerced into a Homotopy between
p₀.toPath and p₁.toPath.
Equations
- F.dihomToHom = { toContinuousMap := F.toContinuousMap, map_zero_left := ⋯, map_one_left := ⋯, prop' := ⋯ }
Instances For
Equations
- Dipath.Dihomotopy.coeDihomToHom = { coe := fun (F : p₀.Dihomotopy p₁) => F.dihomToHom }
Evaluating a dipath homotopy at an intermediate point, giving us a Dipath.
Equations
Instances For
Given a dipath p, we can define a Dihomotopy p p by F (t, x) = p x
Equations
Instances For
Given Dihomotopy p₀ p₁ and Dihomotopy p₁ p₂, we can define a Dihomotopy p₀ p₂ by putting
the first
dihomotopy on [0, 1/2] and the second on [1/2, 1].
Equations
- F.trans G = DirectedMap.DihomotopyRel.trans F G
Instances For
Casting a Dihomotopy p₀ p₁ to a Dihomotopy q₀ q₁ where p₀ = q₀ and p₁ = q₁.
Equations
- F.cast h₀ h₁ = DirectedMap.DihomotopyRel.cast F ⋯ ⋯
Instances For
Suppose p₀ and q₀ are dipaths from x to y, p₁ and q₁ are dipaths from y to z.
Furthermore, suppose F : Dihomotopy p₀ q₀ and G : Dihomotopy p₁ q₁. Then we can define a dihomotopy
from p₀.trans p₁ to q₀.trans q₁.
Equations
- F.hcomp G = Dipath.Dihomotopy.homToDihom (F.dihomToHom.hcomp G.dihomToHom) ⋯
Instances For
Suppose p is a dipath, and f g : D(I,I) two monotonic subparametrizations. If f is
dominated by g,
i.e. ∀ t, f t ≤ g t, then we obtain a dihomotopy between the two subparametrization of p as
the interpolation between the two becomes directed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any p : Dipath x y, there is a dihomotopy from p to p.trans (Dipath.refl y).
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any p : Dipath x y, there is a dihomotopy from (Dipath.refl x).trans p to p.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any p : Dipath x y, there is a homotopy from (Dipath.refl x).trans p to q.trans (Dipath.refl y),
where q is any directed reparametrization of p.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given F : Dihomotopy p q, and f : D(X,Y), there is a dihomotopy from p.map f to
q.map f given by f ∘ F.
Equations
Instances For
Two dipaths p₀ and p₁ are Dipath.PreDihomotopic if there exists a Dihomotopy from p₀
to p₁.
Equations
- p₀.PreDihomotopic p₁ = Nonempty (p₀.Dihomotopy p₁)
Instances For
Dipath.Dihomotopic is the equivalence generated by Dipath.PreDihomotopic.
Equations
- p₀.Dihomotopic p₁ = Relation.EqvGen Dipath.PreDihomotopic p₀ p₁
Instances For
If p is dihomotopic with q, then f ∘ p is dihomotopic with f ∘ q for any directed map
f
Suppose we havep₀ p₁ : Dipath x y and q₀ q₁ : Dipath y z.
If p₀ is dihomotopic with p₁ and q₀ is dihomotopic with q₁,
then p₀.trans q₀ is dihomotopic with p₁.trans q₁.
If p is a dipath, then it is dihomotopic with any monotonic subparametrization.
The setoid on Dipaths defined by the equivalence relation Dipath.Dihomotopic. That is, two
paths are
equivalent if there is a chain of Dihomotopies starting in one and ending in the other.
Equations
- Dipath.Dihomotopic.setoid x y = { r := Dipath.Dihomotopic, iseqv := ⋯ }
Instances For
Equations
- Dipath.Dihomotopic.instInhabitedQuotient = { default := Quotient.mk' (Dipath.refl x) }
The composition of dipath dihomotopy classes. This is Dipath.trans descended to the
quotient.
Equations
- P₀.comp P₁ = Quotient.map₂ Dipath.trans ⋯ P₀ P₁
Instances For
The image of a dipath dihomotopy class P₀ under a directed map f. This is Dipath.map
descended to the quotient.
Equations
- P₀.mapFn f = Quotient.map (fun (q : Dipath x y) => q.map f) ⋯ P₀