Homotopic maps induce naturally isomorphic functors #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main definitions #
-
fundamental_groupoid_functor.homotopic_maps_nat_iso HThe natural isomorphism between the induced functorsf : π(X) ⥤ π(Y)andg : π(X) ⥤ π(Y), given a homotopyH : f ∼ g -
fundamental_groupoid_functor.equiv_of_homotopy_equiv hequivThe equivalence of the categoriesπ(X)andπ(Y)given a homotopy equivalencehequiv : X ≃ₕ Ybetween them.
Implementation notes #
- In order to be more universe polymorphic, we define
continuous_map.homotopy.ulift_mapwhich lifts a homotopy fromI × X → Yto(Top.of ((ulift I) × X)) → Y. This is because this construction usesfundamental_groupoid_functor.prod_to_prod_Topto convert between pairs of paths in I and X and the corresponding path after passing through a homotopyH. Butfundamental_groupoid_functor.prod_to_prod_Toprequires two spaces in the same universe.
The path 0 ⟶ 1 in I
Equations
- unit_interval.path01 = {to_continuous_map := {to_fun := id ↥unit_interval, continuous_to_fun := unit_interval.path01._proof_1}, source' := unit_interval.path01._proof_2, target' := unit_interval.path01._proof_3}
The path 0 ⟶ 1 in ulift I
Equations
- unit_interval.upath01 = {to_continuous_map := {to_fun := ulift.up ↥unit_interval, continuous_to_fun := unit_interval.upath01._proof_1}, source' := unit_interval.upath01._proof_2, target' := unit_interval.upath01._proof_3}
The homotopy path class of 0 → 1 in ulift I
Equations
Abbreviation for eq_to_hom that accepts points in a topological space
If f(p(t) = g(q(t)) for two paths p and q, then the induced path homotopy classes
f(p) and g(p) are the same as well, despite having a priori different types
These definitions set up the following diagram, for each path p:
f(p)
*--------*
| \ |
H₀ | \ d | H₁
| \ |
*--------*
g(p)
Here, H₀ = H.eval_at x₀ is the path from f(x₀) to g(x₀),
and similarly for H₁. Similarly, f(p) denotes the
path in Y that the induced map f takes p, and similarly for g(p).
Finally, d, the diagonal path, is H(0 ⟶ 1, p), the result of the induced H on
path.homotopic.prod (0 ⟶ 1) p, where (0 ⟶ 1) denotes the path from 0 to 1 in I.
It is clear that the diagram commutes (H₀ ≫ g(p) = d = f(p) ≫ H₁), but unfortunately,
many of the paths do not have defeq starting/ending points, so we end up needing some casting.
An abbreviation for prod_to_prod_Top, with some types already in place to help the
typechecker. In particular, the first path should be on the ulifted unit interval.
The diagonal path d of a homotopy H on a path p
The diagonal path, but starting from f x₀ and going to g x₁
Equations
Proof that f(p) = H(0 ⟶ 0, p), with the appropriate casts
Proof that g(p) = H(1 ⟶ 1, p), with the appropriate casts
Given a homotopy H : f ∼ g, we have an associated natural isomorphism between the induced
functors f and g
Equations
- fundamental_groupoid_functor.homotopic_maps_nat_iso H = {app := λ (x : ↥(fundamental_groupoid.fundamental_groupoid_functor.obj X)), ⟦H.eval_at x⟧, naturality' := _}
Instances for fundamental_groupoid_functor.homotopic_maps_nat_iso
Homotopy equivalent topological spaces have equivalent fundamental groupoids.
Equations
- fundamental_groupoid_functor.equiv_of_homotopy_equiv hequiv = category_theory.equivalence.mk (fundamental_groupoid.fundamental_groupoid_functor.map hequiv.to_fun) (fundamental_groupoid.fundamental_groupoid_functor.map hequiv.inv_fun) (_.mpr (_.mpr (category_theory.as_iso (fundamental_groupoid_functor.homotopic_maps_nat_iso (nonempty.some _))).symm)) (_.mpr (_.mpr (category_theory.as_iso (fundamental_groupoid_functor.homotopic_maps_nat_iso (nonempty.some _)))))