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 H
The natural isomorphism between the induced functorsf : π(X) ⥤ π(Y)
andg : π(X) ⥤ π(Y)
, given a homotopyH : f ∼ g
-
fundamental_groupoid_functor.equiv_of_homotopy_equiv hequiv
The equivalence of the categoriesπ(X)
andπ(Y)
given a homotopy equivalencehequiv : X ≃ₕ Y
between them.
Implementation notes #
- In order to be more universe polymorphic, we define
continuous_map.homotopy.ulift_map
which lifts a homotopy fromI × X → Y
to(Top.of ((ulift I) × X)) → Y
. This is because this construction usesfundamental_groupoid_functor.prod_to_prod_Top
to convert between pairs of paths in I and X and the corresponding path after passing through a homotopyH
. Butfundamental_groupoid_functor.prod_to_prod_Top
requires 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 _)))))