algebraic_topology.fundamental_groupoid.basicMathlib.AlgebraicTopology.FundamentalGroupoid.Basic

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Shing Tak Lam. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Shing Tak Lam
 -/
-import CategoryTheory.Category.Groupoid
+import CategoryTheory.Category.Grpd
 import CategoryTheory.Groupoid
-import Topology.Category.Top.Basic
+import Topology.Category.TopCat.Basic
 import Topology.Homotopy.Path
 
 #align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
Diff
@@ -115,7 +115,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
   prop' t x hx := by
     cases hx
     · rw [hx]; simp [refl_trans_symm_aux]
-    · rw [Set.mem_singleton_iff] at hx 
+    · rw [Set.mem_singleton_iff] at hx
       rw [hx]
       norm_num [refl_trans_symm_aux]
 #align path.homotopy.refl_trans_symm Path.Homotopy.reflTransSymm
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2021 Shing Tak Lam. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Shing Tak Lam
 -/
-import Mathbin.CategoryTheory.Category.Groupoid
-import Mathbin.CategoryTheory.Groupoid
-import Mathbin.Topology.Category.Top.Basic
-import Mathbin.Topology.Homotopy.Path
+import CategoryTheory.Category.Groupoid
+import CategoryTheory.Groupoid
+import Topology.Category.Top.Basic
+import Topology.Homotopy.Path
 
 #align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Shing Tak Lam. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Shing Tak Lam
-
-! This file was ported from Lean 3 source module algebraic_topology.fundamental_groupoid.basic
-! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Category.Groupoid
 import Mathbin.CategoryTheory.Groupoid
 import Mathbin.Topology.Category.Top.Basic
 import Mathbin.Topology.Homotopy.Path
 
+#align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
+
 /-!
 # Fundamental groupoid of a space
 
Diff
@@ -379,7 +379,7 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
     intro X
     change _ = (⟨_, _, _, _⟩ : FundamentalGroupoid X ⥤ FundamentalGroupoid X)
     congr
-    ext (x y p)
+    ext x y p
     refine' Quotient.inductionOn p fun q => _
     rw [← Path.Homotopic.map_lift]
     conv_rhs => rw [← q.map_id]
@@ -387,7 +387,7 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
   map_comp' := by
     intro X Y Z f g
     congr
-    ext (x y p)
+    ext x y p
     refine' Quotient.inductionOn p fun q => _
     simp only [Quotient.map_mk, Path.map_map, Quotient.eq']
     rfl
Diff
@@ -49,6 +49,7 @@ def reflTransSymmAux (x : I × I) : ℝ :=
 #align path.homotopy.refl_trans_symm_aux Path.Homotopy.reflTransSymmAux
 -/
 
+#print Path.Homotopy.continuous_reflTransSymmAux /-
 @[continuity]
 theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux :=
   by
@@ -60,6 +61,7 @@ theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux :=
   intro x hx
   norm_num [hx, mul_assoc]
 #align path.homotopy.continuous_refl_trans_symm_aux Path.Homotopy.continuous_reflTransSymmAux
+-/
 
 #print Path.Homotopy.reflTransSymmAux_mem_I /-
 theorem reflTransSymmAux_mem_I (x : I × I) : reflTransSymmAux x ∈ I :=
@@ -160,11 +162,15 @@ theorem transReflReparamAux_mem_I (t : I) : transReflReparamAux t ∈ I :=
 #align path.homotopy.trans_refl_reparam_aux_mem_I Path.Homotopy.transReflReparamAux_mem_I
 -/
 
+#print Path.Homotopy.transReflReparamAux_zero /-
 theorem transReflReparamAux_zero : transReflReparamAux 0 = 0 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zero
+-/
 
+#print Path.Homotopy.transReflReparamAux_one /-
 theorem transReflReparamAux_one : transReflReparamAux 1 = 1 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_one
+-/
 
 #print Path.Homotopy.trans_refl_reparam /-
 theorem trans_refl_reparam (p : Path x₀ x₁) :
@@ -234,13 +240,17 @@ theorem transAssocReparamAux_mem_I (t : I) : transAssocReparamAux t ∈ I :=
 #align path.homotopy.trans_assoc_reparam_aux_mem_I Path.Homotopy.transAssocReparamAux_mem_I
 -/
 
+#print Path.Homotopy.transAssocReparamAux_zero /-
 theorem transAssocReparamAux_zero : transAssocReparamAux 0 = 0 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zero
+-/
 
+#print Path.Homotopy.transAssocReparamAux_one /-
 theorem transAssocReparamAux_one : transAssocReparamAux 1 = 1 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_one
+-/
 
 #print Path.Homotopy.trans_assoc_reparam /-
 theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
@@ -384,40 +394,45 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
 #align fundamental_groupoid.fundamental_groupoid_functor FundamentalGroupoid.fundamentalGroupoidFunctor
 -/
 
--- mathport name: fundamental_groupoid_functor
 scoped notation "π" => FundamentalGroupoid.fundamentalGroupoidFunctor
 
--- mathport name: fundamental_groupoid_functor.obj
 scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
 
--- mathport name: fundamental_groupoid_functor.map
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
+#print FundamentalGroupoid.map_eq /-
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
     (πₘ f).map p = p.mapFn f :=
   rfl
 #align fundamental_groupoid.map_eq FundamentalGroupoid.map_eq
+-/
 
+#print FundamentalGroupoid.toTop /-
 /-- Help the typechecker by converting a point in a groupoid back to a point in
 the underlying topological space. -/
 @[reducible]
 def toTop {X : TopCat} (x : πₓ X) : X :=
   x
 #align fundamental_groupoid.to_top FundamentalGroupoid.toTop
+-/
 
+#print FundamentalGroupoid.fromTop /-
 /-- Help the typechecker by converting a point in a topological space to a
 point in the fundamental groupoid of that space -/
 @[reducible]
 def fromTop {X : TopCat} (x : X) : πₓ X :=
   x
 #align fundamental_groupoid.from_top FundamentalGroupoid.fromTop
+-/
 
+#print FundamentalGroupoid.toPath /-
 /-- Help the typechecker by converting an arrow in the fundamental groupoid of
 a topological space back to a path in that space (i.e., `path.homotopic.quotient`). -/
 @[reducible]
 def toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) : Path.Homotopic.Quotient x₀ x₁ :=
   p
 #align fundamental_groupoid.to_path FundamentalGroupoid.toPath
+-/
 
 #print FundamentalGroupoid.fromPath /-
 /-- Help the typechecker by convering a path in a topological space to an arrow in the
Diff
@@ -116,7 +116,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
   prop' t x hx := by
     cases hx
     · rw [hx]; simp [refl_trans_symm_aux]
-    · rw [Set.mem_singleton_iff] at hx
+    · rw [Set.mem_singleton_iff] at hx 
       rw [hx]
       norm_num [refl_trans_symm_aux]
 #align path.homotopy.refl_trans_symm Path.Homotopy.reflTransSymm
@@ -146,7 +146,7 @@ def transReflReparamAux (t : I) : ℝ :=
 theorem continuous_transReflReparamAux : Continuous transReflReparamAux :=
   by
   refine' continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _) _ <;>
-    [continuity;continuity;continuity;continuity;skip]
+    [continuity; continuity; continuity; continuity; skip]
   intro x hx
   norm_num [hx]
 #align path.homotopy.continuous_trans_refl_reparam_aux Path.Homotopy.continuous_transReflReparamAux
@@ -219,7 +219,8 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
           (continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _)
               _).ContinuousOn
           _ <;>
-      [continuity;continuity;continuity;continuity;continuity;continuity;continuity;skip;skip] <;>
+      [continuity; continuity; continuity; continuity; continuity; continuity; continuity; skip;
+      skip] <;>
     · intro x hx
       norm_num [hx]
 #align path.homotopy.continuous_trans_assoc_reparam_aux Path.Homotopy.continuous_transAssocReparamAux
@@ -267,7 +268,7 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
   · have h : ¬(1 / 2 : ℝ) * (x + 1) ≤ 1 / 2 := by linarith
     have h' : ¬2 * ((1 / 2 : ℝ) * (x + 1)) - 1 ≤ 1 / 2 := by linarith
     simp only [h₁, h₅, h, h', if_false, dif_neg (show ¬False from id)]
-    congr ; ring
+    congr; ring
 #align path.homotopy.trans_assoc_reparam Path.Homotopy.trans_assoc_reparam
 -/
 
Diff
@@ -34,7 +34,7 @@ variable {x₀ x₁ : X}
 
 noncomputable section
 
-open unitInterval
+open scoped unitInterval
 
 namespace Path
 
Diff
@@ -49,12 +49,6 @@ def reflTransSymmAux (x : I × I) : ℝ :=
 #align path.homotopy.refl_trans_symm_aux Path.Homotopy.reflTransSymmAux
 -/
 
-/- warning: path.homotopy.continuous_refl_trans_symm_aux -> Path.Homotopy.continuous_reflTransSymmAux is a dubious translation:
-lean 3 declaration is
-  Continuous.{0, 0} (Prod.{0, 0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval)) Real (Prod.topologicalSpace.{0, 0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (Subtype.topologicalSpace.{0} Real (fun (x : Real) => Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (Subtype.topologicalSpace.{0} Real (fun (x : Real) => Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Path.Homotopy.reflTransSymmAux
-but is expected to have type
-  Continuous.{0, 0} (Prod.{0, 0} (Set.Elem.{0} Real unitInterval) (Set.Elem.{0} Real unitInterval)) Real (instTopologicalSpaceProd.{0, 0} (Set.Elem.{0} Real unitInterval) (Set.Elem.{0} Real unitInterval) (instTopologicalSpaceSubtype.{0} Real (fun (x : Real) => Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (instTopologicalSpaceSubtype.{0} Real (fun (x : Real) => Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Path.Homotopy.reflTransSymmAux
-Case conversion may be inaccurate. Consider using '#align path.homotopy.continuous_refl_trans_symm_aux Path.Homotopy.continuous_reflTransSymmAuxₓ'. -/
 @[continuity]
 theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux :=
   by
@@ -166,21 +160,9 @@ theorem transReflReparamAux_mem_I (t : I) : transReflReparamAux t ∈ I :=
 #align path.homotopy.trans_refl_reparam_aux_mem_I Path.Homotopy.transReflReparamAux_mem_I
 -/
 
-/- warning: path.homotopy.trans_refl_reparam_aux_zero -> Path.Homotopy.transReflReparamAux_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (Zero.zero.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
-  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 0 (Zero.toOfNat0.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zeroₓ'. -/
 theorem transReflReparamAux_zero : transReflReparamAux 0 = 0 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zero
 
-/- warning: path.homotopy.trans_refl_reparam_aux_one -> Path.Homotopy.transReflReparamAux_one is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (One.one.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
-  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 1 (One.toOfNat1.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_oneₓ'. -/
 theorem transReflReparamAux_one : transReflReparamAux 1 = 1 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_one
 
@@ -251,22 +233,10 @@ theorem transAssocReparamAux_mem_I (t : I) : transAssocReparamAux t ∈ I :=
 #align path.homotopy.trans_assoc_reparam_aux_mem_I Path.Homotopy.transAssocReparamAux_mem_I
 -/
 
-/- warning: path.homotopy.trans_assoc_reparam_aux_zero -> Path.Homotopy.transAssocReparamAux_zero is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (Zero.zero.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
-  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 0 (Zero.toOfNat0.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zeroₓ'. -/
 theorem transAssocReparamAux_zero : transAssocReparamAux 0 = 0 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zero
 
-/- warning: path.homotopy.trans_assoc_reparam_aux_one -> Path.Homotopy.transAssocReparamAux_one is a dubious translation:
-lean 3 declaration is
-  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (One.one.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
-  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 1 (One.toOfNat1.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_oneₓ'. -/
 theorem transAssocReparamAux_one : transAssocReparamAux 1 = 1 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_one
@@ -422,20 +392,11 @@ scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
 -- mathport name: fundamental_groupoid_functor.map
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
-/- warning: fundamental_groupoid.map_eq -> FundamentalGroupoid.map_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.map_eq FundamentalGroupoid.map_eqₓ'. -/
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
     (πₘ f).map p = p.mapFn f :=
   rfl
 #align fundamental_groupoid.map_eq FundamentalGroupoid.map_eq
 
-/- warning: fundamental_groupoid.to_top -> FundamentalGroupoid.toTop is a dubious translation:
-lean 3 declaration is
-  forall {X : TopCat.{u1}}, (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) -> (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X)
-but is expected to have type
-  forall {X : TopCat.{u1}}, (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) -> (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X)
-Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.to_top FundamentalGroupoid.toTopₓ'. -/
 /-- Help the typechecker by converting a point in a groupoid back to a point in
 the underlying topological space. -/
 @[reducible]
@@ -443,12 +404,6 @@ def toTop {X : TopCat} (x : πₓ X) : X :=
   x
 #align fundamental_groupoid.to_top FundamentalGroupoid.toTop
 
-/- warning: fundamental_groupoid.from_top -> FundamentalGroupoid.fromTop is a dubious translation:
-lean 3 declaration is
-  forall {X : TopCat.{u1}}, (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) -> (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))
-but is expected to have type
-  forall {X : TopCat.{u1}}, (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) -> (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))
-Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.from_top FundamentalGroupoid.fromTopₓ'. -/
 /-- Help the typechecker by converting a point in a topological space to a
 point in the fundamental groupoid of that space -/
 @[reducible]
@@ -456,12 +411,6 @@ def fromTop {X : TopCat} (x : X) : πₓ X :=
   x
 #align fundamental_groupoid.from_top FundamentalGroupoid.fromTop
 
-/- warning: fundamental_groupoid.to_path -> FundamentalGroupoid.toPath is a dubious translation:
-lean 3 declaration is
-  forall {X : TopCat.{u1}} {x₀ : coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)} {x₁ : coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)}, (Quiver.Hom.{succ u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))))) x₀ x₁) -> (Path.Homotopic.Quotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (TopCat.topologicalSpace.{u1} X) x₀ x₁)
-but is expected to have type
-  forall {X : TopCat.{u1}} {x₀ : CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)} {x₁ : CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)}, (Quiver.Hom.{succ u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) x₀ x₁) -> (Path.Homotopic.Quotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (TopCat.topologicalSpace_coe.{u1} X) x₀ x₁)
-Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.to_path FundamentalGroupoid.toPathₓ'. -/
 /-- Help the typechecker by converting an arrow in the fundamental groupoid of
 a topological space back to a path in that space (i.e., `path.homotopic.quotient`). -/
 @[reducible]
Diff
@@ -121,8 +121,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
         exact ⟨(not_le.1 h).le, unitInterval.le_one x⟩
   prop' t x hx := by
     cases hx
-    · rw [hx]
-      simp [refl_trans_symm_aux]
+    · rw [hx]; simp [refl_trans_symm_aux]
     · rw [Set.mem_singleton_iff] at hx
       rw [hx]
       norm_num [refl_trans_symm_aux]
@@ -286,10 +285,8 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
   -- TODO: why does split_ifs not reduce the ifs??????
   split_ifs with h₁ h₂ h₃ h₄ h₅
   · simp [h₂, h₃, -one_div]
-  · exfalso
-    linarith
-  · exfalso
-    linarith
+  · exfalso; linarith
+  · exfalso; linarith
   · have h : ¬(x : ℝ) + 1 / 4 ≤ 1 / 2 := by linarith
     have h' : 2 * ((x : ℝ) + 1 / 4) - 1 ≤ 1 / 2 := by linarith
     have h'' : 2 * (2 * (x : ℝ)) - 1 = 2 * (2 * (↑x + 1 / 4) - 1) := by linarith
@@ -300,8 +297,7 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
   · have h : ¬(1 / 2 : ℝ) * (x + 1) ≤ 1 / 2 := by linarith
     have h' : ¬2 * ((1 / 2 : ℝ) * (x + 1)) - 1 ≤ 1 / 2 := by linarith
     simp only [h₁, h₅, h, h', if_false, dif_neg (show ¬False from id)]
-    congr
-    ring
+    congr ; ring
 #align path.homotopy.trans_assoc_reparam Path.Homotopy.trans_assoc_reparam
 -/
 
Diff
@@ -427,10 +427,7 @@ scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
 /- warning: fundamental_groupoid.map_eq -> FundamentalGroupoid.map_eq is a dubious translation:
-lean 3 declaration is
-  forall {X : TopCat.{u1}} {Y : TopCat.{u1}} {x₀ : coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X} {x₁ : coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X} (f : ContinuousMap.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} Y) (TopCat.topologicalSpace.{u1} X) (TopCat.topologicalSpace.{u1} Y)) (p : Path.Homotopic.Quotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} X) x₀ x₁), Eq.{succ u1} (Quiver.Hom.{succ u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))))) (CategoryTheory.Functor.obj.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₀) (CategoryTheory.Functor.obj.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₁)) (CategoryTheory.Functor.map.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₀ x₁ p) (Path.Homotopic.Quotient.mapFn.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (FundamentalGroupoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} Y)) (TopCat.topologicalSpace.{u1} X) (TopCat.topologicalSpace.{u1} Y) x₀ x₁ p f)
-but is expected to have type
-  forall {X : TopCat.{u1}} {Y : TopCat.{u1}} {x₀ : CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X} {x₁ : CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X} (f : ContinuousMap.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} Y) (TopCat.topologicalSpace_coe.{u1} X) (TopCat.topologicalSpace_coe.{u1} Y)) (p : Path.Homotopic.Quotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (TopCat.topologicalSpace_coe.{u1} X) x₀ x₁), Eq.{succ u1} (Quiver.Hom.{succ u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (Prefunctor.obj.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₀) (Prefunctor.obj.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₁)) (Prefunctor.map.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₀ x₁ p) (Path.Homotopic.Quotient.mapFn.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} Y) (TopCat.topologicalSpace_coe.{u1} X) (TopCat.topologicalSpace_coe.{u1} Y) x₀ x₁ p f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.map_eq FundamentalGroupoid.map_eqₓ'. -/
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
     (πₘ f).map p = p.mapFn f :=
Diff
@@ -153,7 +153,7 @@ def transReflReparamAux (t : I) : ℝ :=
 theorem continuous_transReflReparamAux : Continuous transReflReparamAux :=
   by
   refine' continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _) _ <;>
-    [continuity, continuity, continuity, continuity, skip]
+    [continuity;continuity;continuity;continuity;skip]
   intro x hx
   norm_num [hx]
 #align path.homotopy.continuous_trans_refl_reparam_aux Path.Homotopy.continuous_transReflReparamAux
@@ -238,8 +238,7 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
           (continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _)
               _).ContinuousOn
           _ <;>
-      [continuity, continuity, continuity, continuity, continuity, continuity, continuity, skip,
-      skip] <;>
+      [continuity;continuity;continuity;continuity;continuity;continuity;continuity;skip;skip] <;>
     · intro x hx
       norm_num [hx]
 #align path.homotopy.continuous_trans_assoc_reparam_aux Path.Homotopy.continuous_transAssocReparamAux
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Shing Tak Lam
 
 ! This file was ported from Lean 3 source module algebraic_topology.fundamental_groupoid.basic
-! leanprover-community/mathlib commit 3d7987cda72abc473c7cdbbb075170e9ac620042
+! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.Topology.Homotopy.Path
 /-!
 # Fundamental groupoid of a space
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given a topological space `X`, we can define the fundamental groupoid of `X` to be the category with
 objects being points of `X`, and morphisms `x ⟶ y` being paths from `x` to `y`, quotiented by
 homotopy equivalence. With this, the fundamental group of `X` based at `x` is just the automorphism
Diff
@@ -39,11 +39,19 @@ namespace Homotopy
 
 section
 
+#print Path.Homotopy.reflTransSymmAux /-
 /-- Auxilliary function for `refl_trans_symm` -/
 def reflTransSymmAux (x : I × I) : ℝ :=
   if (x.2 : ℝ) ≤ 1 / 2 then x.1 * 2 * x.2 else x.1 * (2 - 2 * x.2)
 #align path.homotopy.refl_trans_symm_aux Path.Homotopy.reflTransSymmAux
+-/
 
+/- warning: path.homotopy.continuous_refl_trans_symm_aux -> Path.Homotopy.continuous_reflTransSymmAux is a dubious translation:
+lean 3 declaration is
+  Continuous.{0, 0} (Prod.{0, 0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval)) Real (Prod.topologicalSpace.{0, 0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) (Subtype.topologicalSpace.{0} Real (fun (x : Real) => Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (Subtype.topologicalSpace.{0} Real (fun (x : Real) => Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Path.Homotopy.reflTransSymmAux
+but is expected to have type
+  Continuous.{0, 0} (Prod.{0, 0} (Set.Elem.{0} Real unitInterval) (Set.Elem.{0} Real unitInterval)) Real (instTopologicalSpaceProd.{0, 0} (Set.Elem.{0} Real unitInterval) (Set.Elem.{0} Real unitInterval) (instTopologicalSpaceSubtype.{0} Real (fun (x : Real) => Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))) (instTopologicalSpaceSubtype.{0} Real (fun (x : Real) => Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x unitInterval) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Path.Homotopy.reflTransSymmAux
+Case conversion may be inaccurate. Consider using '#align path.homotopy.continuous_refl_trans_symm_aux Path.Homotopy.continuous_reflTransSymmAuxₓ'. -/
 @[continuity]
 theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux :=
   by
@@ -56,6 +64,7 @@ theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux :=
   norm_num [hx, mul_assoc]
 #align path.homotopy.continuous_refl_trans_symm_aux Path.Homotopy.continuous_reflTransSymmAux
 
+#print Path.Homotopy.reflTransSymmAux_mem_I /-
 theorem reflTransSymmAux_mem_I (x : I × I) : reflTransSymmAux x ∈ I :=
   by
   dsimp only [refl_trans_symm_aux]
@@ -82,7 +91,9 @@ theorem reflTransSymmAux_mem_I (x : I × I) : reflTransSymmAux x ∈ I :=
       · linarith [unitInterval.nonneg x.2, unitInterval.le_one x.2]
       · linarith [unitInterval.nonneg x.2, unitInterval.le_one x.2]
 #align path.homotopy.refl_trans_symm_aux_mem_I Path.Homotopy.reflTransSymmAux_mem_I
+-/
 
+#print Path.Homotopy.reflTransSymm /-
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from the constant path based at `x₀` to
   `p.trans p.symm`. -/
 def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.symm)
@@ -113,22 +124,28 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
       rw [hx]
       norm_num [refl_trans_symm_aux]
 #align path.homotopy.refl_trans_symm Path.Homotopy.reflTransSymm
+-/
 
+#print Path.Homotopy.reflSymmTrans /-
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from the constant path based at `x₁` to
   `p.symm.trans p`. -/
 def reflSymmTrans (p : Path x₀ x₁) : Homotopy (Path.refl x₁) (p.symm.trans p) :=
   (reflTransSymm p.symm).cast rfl <| congr_arg _ Path.symm_symm
 #align path.homotopy.refl_symm_trans Path.Homotopy.reflSymmTrans
+-/
 
 end
 
 section TransRefl
 
+#print Path.Homotopy.transReflReparamAux /-
 /-- Auxilliary function for `trans_refl_reparam` -/
 def transReflReparamAux (t : I) : ℝ :=
   if (t : ℝ) ≤ 1 / 2 then 2 * t else 1
 #align path.homotopy.trans_refl_reparam_aux Path.Homotopy.transReflReparamAux
+-/
 
+#print Path.Homotopy.continuous_transReflReparamAux /-
 @[continuity]
 theorem continuous_transReflReparamAux : Continuous transReflReparamAux :=
   by
@@ -137,19 +154,35 @@ theorem continuous_transReflReparamAux : Continuous transReflReparamAux :=
   intro x hx
   norm_num [hx]
 #align path.homotopy.continuous_trans_refl_reparam_aux Path.Homotopy.continuous_transReflReparamAux
+-/
 
+#print Path.Homotopy.transReflReparamAux_mem_I /-
 theorem transReflReparamAux_mem_I (t : I) : transReflReparamAux t ∈ I :=
   by
   unfold trans_refl_reparam_aux
   split_ifs <;> constructor <;> linarith [unitInterval.le_one t, unitInterval.nonneg t]
 #align path.homotopy.trans_refl_reparam_aux_mem_I Path.Homotopy.transReflReparamAux_mem_I
+-/
 
+/- warning: path.homotopy.trans_refl_reparam_aux_zero -> Path.Homotopy.transReflReparamAux_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (Zero.zero.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 0 (Zero.toOfNat0.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zeroₓ'. -/
 theorem transReflReparamAux_zero : transReflReparamAux 0 = 0 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zero
 
+/- warning: path.homotopy.trans_refl_reparam_aux_one -> Path.Homotopy.transReflReparamAux_one is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (One.one.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+  Eq.{1} Real (Path.Homotopy.transReflReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 1 (One.toOfNat1.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_oneₓ'. -/
 theorem transReflReparamAux_one : transReflReparamAux 1 = 1 := by norm_num [trans_refl_reparam_aux]
 #align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_one
 
+#print Path.Homotopy.trans_refl_reparam /-
 theorem trans_refl_reparam (p : Path x₀ x₁) :
     p.trans (Path.refl x₁) =
       p.reparam (fun t => ⟨transReflReparamAux t, transReflReparamAux_mem_I t⟩) (by continuity)
@@ -162,7 +195,9 @@ theorem trans_refl_reparam (p : Path x₀ x₁) :
   · rfl
   · simp
 #align path.homotopy.trans_refl_reparam Path.Homotopy.trans_refl_reparam
+-/
 
+#print Path.Homotopy.transRefl /-
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from `p.trans (path.refl x₁)` to `p`.
 -/
 def transRefl (p : Path x₀ x₁) : Homotopy (p.trans (Path.refl x₁)) p :=
@@ -171,22 +206,28 @@ def transRefl (p : Path x₀ x₁) : Homotopy (p.trans (Path.refl x₁)) p :=
           (Subtype.ext transReflReparamAux_one)).cast
       rfl (trans_refl_reparam p).symm).symm
 #align path.homotopy.trans_refl Path.Homotopy.transRefl
+-/
 
+#print Path.Homotopy.reflTrans /-
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from `(path.refl x₀).trans p` to `p`.
 -/
 def reflTrans (p : Path x₀ x₁) : Homotopy ((Path.refl x₀).trans p) p :=
   (transRefl p.symm).symm₂.cast (by simp) (by simp)
 #align path.homotopy.refl_trans Path.Homotopy.reflTrans
+-/
 
 end TransRefl
 
 section Assoc
 
+#print Path.Homotopy.transAssocReparamAux /-
 /-- Auxilliary function for `trans_assoc_reparam`. -/
 def transAssocReparamAux (t : I) : ℝ :=
   if (t : ℝ) ≤ 1 / 4 then 2 * t else if (t : ℝ) ≤ 1 / 2 then t + 1 / 4 else 1 / 2 * (t + 1)
 #align path.homotopy.trans_assoc_reparam_aux Path.Homotopy.transAssocReparamAux
+-/
 
+#print Path.Homotopy.continuous_transAssocReparamAux /-
 @[continuity]
 theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
   refine'
@@ -199,21 +240,37 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
     · intro x hx
       norm_num [hx]
 #align path.homotopy.continuous_trans_assoc_reparam_aux Path.Homotopy.continuous_transAssocReparamAux
+-/
 
+#print Path.Homotopy.transAssocReparamAux_mem_I /-
 theorem transAssocReparamAux_mem_I (t : I) : transAssocReparamAux t ∈ I :=
   by
   unfold trans_assoc_reparam_aux
   split_ifs <;> constructor <;> linarith [unitInterval.le_one t, unitInterval.nonneg t]
 #align path.homotopy.trans_assoc_reparam_aux_mem_I Path.Homotopy.transAssocReparamAux_mem_I
+-/
 
+/- warning: path.homotopy.trans_assoc_reparam_aux_zero -> Path.Homotopy.transAssocReparamAux_zero is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 0 (Zero.zero.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasZero)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 0 (Zero.toOfNat0.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasZero))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zeroₓ'. -/
 theorem transAssocReparamAux_zero : transAssocReparamAux 0 = 0 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zero
 
+/- warning: path.homotopy.trans_assoc_reparam_aux_one -> Path.Homotopy.transAssocReparamAux_one is a dubious translation:
+lean 3 declaration is
+  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (OfNat.mk.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) 1 (One.one.{0} (coeSort.{1, 2} (Set.{0} Real) Type (Set.hasCoeToSort.{0} Real) unitInterval) unitInterval.hasOne)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+  Eq.{1} Real (Path.Homotopy.transAssocReparamAux (OfNat.ofNat.{0} (Set.Elem.{0} Real unitInterval) 1 (One.toOfNat1.{0} (Set.Elem.{0} Real unitInterval) unitInterval.hasOne))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_oneₓ'. -/
 theorem transAssocReparamAux_one : transAssocReparamAux 1 = 1 := by
   norm_num [trans_assoc_reparam_aux]
 #align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_one
 
+#print Path.Homotopy.trans_assoc_reparam /-
 theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
     (p.trans q).trans r =
       (p.trans (q.trans r)).reparam
@@ -244,7 +301,9 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
     congr
     ring
 #align path.homotopy.trans_assoc_reparam Path.Homotopy.trans_assoc_reparam
+-/
 
+#print Path.Homotopy.transAssoc /-
 /-- For paths `p q r`, we have a homotopy from `(p.trans q).trans r` to `p.trans (q.trans r)`.
 -/
 def transAssoc {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
@@ -254,6 +313,7 @@ def transAssoc {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x
           (Subtype.ext transAssocReparamAux_zero) (Subtype.ext transAssocReparamAux_one)).cast
       rfl (trans_assoc_reparam p q r).symm).symm
 #align path.homotopy.trans_assoc Path.Homotopy.transAssoc
+-/
 
 end Assoc
 
@@ -261,6 +321,7 @@ end Homotopy
 
 end Path
 
+#print FundamentalGroupoid /-
 /--
 The fundamental groupoid of a space `X` is defined to be a type synonym for `X`, and we subsequently
 put a `category_theory.groupoid` structure on it.
@@ -268,6 +329,7 @@ put a `category_theory.groupoid` structure on it.
 def FundamentalGroupoid (X : Type u) :=
   X
 #align fundamental_groupoid FundamentalGroupoid
+-/
 
 namespace FundamentalGroupoid
 
@@ -309,14 +371,19 @@ instance : CategoryTheory.Groupoid (FundamentalGroupoid X)
       show ⟦a.trans a.symm⟧ = ⟦Path.refl x⟧ from
         Quotient.sound ⟨(Path.Homotopy.reflTransSymm a).symm⟩
 
+#print FundamentalGroupoid.comp_eq /-
 theorem comp_eq (x y z : FundamentalGroupoid X) (p : x ⟶ y) (q : y ⟶ z) : p ≫ q = p.comp q :=
   rfl
 #align fundamental_groupoid.comp_eq FundamentalGroupoid.comp_eq
+-/
 
+#print FundamentalGroupoid.id_eq_path_refl /-
 theorem id_eq_path_refl (x : FundamentalGroupoid X) : 𝟙 x = ⟦Path.refl x⟧ :=
   rfl
 #align fundamental_groupoid.id_eq_path_refl FundamentalGroupoid.id_eq_path_refl
+-/
 
+#print FundamentalGroupoid.fundamentalGroupoidFunctor /-
 /-- The functor sending a topological space `X` to its fundamental groupoid.
 -/
 def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
@@ -346,6 +413,7 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
     simp only [Quotient.map_mk, Path.map_map, Quotient.eq']
     rfl
 #align fundamental_groupoid.fundamental_groupoid_functor FundamentalGroupoid.fundamentalGroupoidFunctor
+-/
 
 -- mathport name: fundamental_groupoid_functor
 scoped notation "π" => FundamentalGroupoid.fundamentalGroupoidFunctor
@@ -356,11 +424,23 @@ scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
 -- mathport name: fundamental_groupoid_functor.map
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
+/- warning: fundamental_groupoid.map_eq -> FundamentalGroupoid.map_eq is a dubious translation:
+lean 3 declaration is
+  forall {X : TopCat.{u1}} {Y : TopCat.{u1}} {x₀ : coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X} {x₁ : coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X} (f : ContinuousMap.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} Y) (TopCat.topologicalSpace.{u1} X) (TopCat.topologicalSpace.{u1} Y)) (p : Path.Homotopic.Quotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} X) x₀ x₁), Eq.{succ u1} (Quiver.Hom.{succ u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))))) (CategoryTheory.Functor.obj.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₀) (CategoryTheory.Functor.obj.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₁)) (CategoryTheory.Functor.map.{u1, u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))) (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} Y))) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X Y f) x₀ x₁ p) (Path.Homotopic.Quotient.mapFn.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) (FundamentalGroupoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} Y)) (TopCat.topologicalSpace.{u1} X) (TopCat.topologicalSpace.{u1} Y) x₀ x₁ p f)
+but is expected to have type
+  forall {X : TopCat.{u1}} {Y : TopCat.{u1}} {x₀ : CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X} {x₁ : CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X} (f : ContinuousMap.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} Y) (TopCat.topologicalSpace_coe.{u1} X) (TopCat.topologicalSpace_coe.{u1} Y)) (p : Path.Homotopic.Quotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (TopCat.topologicalSpace_coe.{u1} X) x₀ x₁), Eq.{succ u1} (Quiver.Hom.{succ u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (Prefunctor.obj.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₀) (Prefunctor.obj.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₁)) (Prefunctor.map.{succ u1, succ u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))) (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) Y))) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X Y f)) x₀ x₁ p) (Path.Homotopic.Quotient.mapFn.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} Y) (TopCat.topologicalSpace_coe.{u1} X) (TopCat.topologicalSpace_coe.{u1} Y) x₀ x₁ p f)
+Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.map_eq FundamentalGroupoid.map_eqₓ'. -/
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
     (πₘ f).map p = p.mapFn f :=
   rfl
 #align fundamental_groupoid.map_eq FundamentalGroupoid.map_eq
 
+/- warning: fundamental_groupoid.to_top -> FundamentalGroupoid.toTop is a dubious translation:
+lean 3 declaration is
+  forall {X : TopCat.{u1}}, (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) -> (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X)
+but is expected to have type
+  forall {X : TopCat.{u1}}, (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) -> (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X)
+Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.to_top FundamentalGroupoid.toTopₓ'. -/
 /-- Help the typechecker by converting a point in a groupoid back to a point in
 the underlying topological space. -/
 @[reducible]
@@ -368,6 +448,12 @@ def toTop {X : TopCat} (x : πₓ X) : X :=
   x
 #align fundamental_groupoid.to_top FundamentalGroupoid.toTop
 
+/- warning: fundamental_groupoid.from_top -> FundamentalGroupoid.fromTop is a dubious translation:
+lean 3 declaration is
+  forall {X : TopCat.{u1}}, (coeSort.{succ (succ u1), succ (succ u1)} TopCat.{u1} Type.{u1} TopCat.hasCoeToSort.{u1} X) -> (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))
+but is expected to have type
+  forall {X : TopCat.{u1}}, (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) -> (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))
+Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.from_top FundamentalGroupoid.fromTopₓ'. -/
 /-- Help the typechecker by converting a point in a topological space to a
 point in the fundamental groupoid of that space -/
 @[reducible]
@@ -375,6 +461,12 @@ def fromTop {X : TopCat} (x : X) : πₓ X :=
   x
 #align fundamental_groupoid.from_top FundamentalGroupoid.fromTop
 
+/- warning: fundamental_groupoid.to_path -> FundamentalGroupoid.toPath is a dubious translation:
+lean 3 declaration is
+  forall {X : TopCat.{u1}} {x₀ : coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)} {x₁ : coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)}, (Quiver.Hom.{succ u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (CategoryTheory.Grpd.str'.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X))))) x₀ x₁) -> (Path.Homotopic.Quotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} CategoryTheory.Grpd.{u1, u1} Type.{u1} CategoryTheory.Grpd.hasCoeToSort.{u1, u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1} X)) (TopCat.topologicalSpace.{u1} X) x₀ x₁)
+but is expected to have type
+  forall {X : TopCat.{u1}} {x₀ : CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)} {x₁ : CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)}, (Quiver.Hom.{succ u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Groupoid.toCategory.{u1, u1} (CategoryTheory.Bundled.α.{u1, succ u1} CategoryTheory.Groupoid.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X)) (CategoryTheory.Grpd.str'.{u1, u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} TopCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} TopCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1})) CategoryTheory.Grpd.{u1, u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} CategoryTheory.Grpd.{u1, u1} CategoryTheory.Grpd.category.{u1, u1} FundamentalGroupoid.fundamentalGroupoidFunctor.{u1}) X))))) x₀ x₁) -> (Path.Homotopic.Quotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} X) (TopCat.topologicalSpace_coe.{u1} X) x₀ x₁)
+Case conversion may be inaccurate. Consider using '#align fundamental_groupoid.to_path FundamentalGroupoid.toPathₓ'. -/
 /-- Help the typechecker by converting an arrow in the fundamental groupoid of
 a topological space back to a path in that space (i.e., `path.homotopic.quotient`). -/
 @[reducible]
@@ -382,12 +474,14 @@ def toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) : Path.Homotop
   p
 #align fundamental_groupoid.to_path FundamentalGroupoid.toPath
 
+#print FundamentalGroupoid.fromPath /-
 /-- Help the typechecker by convering a path in a topological space to an arrow in the
 fundamental groupoid of that space. -/
 @[reducible]
 def fromPath {X : TopCat} {x₀ x₁ : X} (p : Path.Homotopic.Quotient x₀ x₁) : x₀ ⟶ x₁ :=
   p
 #align fundamental_groupoid.from_path FundamentalGroupoid.fromPath
+-/
 
 end FundamentalGroupoid
 
Diff
@@ -319,7 +319,7 @@ theorem id_eq_path_refl (x : FundamentalGroupoid X) : 𝟙 x = ⟦Path.refl x⟧
 
 /-- The functor sending a topological space `X` to its fundamental groupoid.
 -/
-def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.GroupoidCat
+def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd
     where
   obj X := { α := FundamentalGroupoid X }
   map X Y f :=
Diff
@@ -223,7 +223,7 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
   ext
   simp only [trans_assoc_reparam_aux, Path.trans_apply, mul_inv_cancel_left₀, not_le,
     Function.comp_apply, Ne.def, not_false_iff, bit0_eq_zero, one_ne_zero, mul_ite, Subtype.coe_mk,
-    Path.coe_to_fun]
+    Path.coe_reparam]
   -- TODO: why does split_ifs not reduce the ifs??????
   split_ifs with h₁ h₂ h₃ h₄ h₅
   · simp [h₂, h₃, -one_div]

Changes in mathlib4

mathlib3
mathlib4
chore: split Subsingleton,Nontrivial off of Data.Set.Basic (#11832)

Moves definition of and lemmas related to Set.Subsingleton and Set.Nontrivial to a new file, so that Basic can be shorter.

Diff
@@ -7,7 +7,7 @@ import Mathlib.CategoryTheory.Category.Grpd
 import Mathlib.CategoryTheory.Groupoid
 import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.Topology.Homotopy.Path
-import Mathlib.Data.Set.Basic
+import Mathlib.Data.Set.Subsingleton
 
 #align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"3d7987cda72abc473c7cdbbb075170e9ac620042"
 
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -271,7 +271,7 @@ end Path
 subsequently put a `CategoryTheory.Groupoid` structure on it. -/
 @[ext]
 structure FundamentalGroupoid (X : Type u) where
-  /-- View a term of `FundamentalGroupoid X` as a term of `X`.-/
+  /-- View a term of `FundamentalGroupoid X` as a term of `X`. -/
   as : X
 #align fundamental_groupoid FundamentalGroupoid
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -217,7 +217,7 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
         (Subtype.ext transAssocReparamAux_zero) (Subtype.ext transAssocReparamAux_one) := by
   ext x
   simp only [transAssocReparamAux, Path.trans_apply, mul_inv_cancel_left₀, not_le,
-    Function.comp_apply, Ne.def, not_false_iff, bit0_eq_zero, one_ne_zero, mul_ite, Subtype.coe_mk,
+    Function.comp_apply, Ne, not_false_iff, bit0_eq_zero, one_ne_zero, mul_ite, Subtype.coe_mk,
     Path.coe_reparam]
   -- TODO: why does split_ifs not reduce the ifs??????
   split_ifs with h₁ h₂ h₃ h₄ h₅
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -25,7 +25,6 @@ open CategoryTheory
 universe u v
 
 variable {X : Type u} {Y : Type v} [TopologicalSpace X] [TopologicalSpace Y]
-
 variable {x₀ x₁ : X}
 
 noncomputable section
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -108,6 +108,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
     cases hx with
     | inl hx
     | inr hx =>
+      set_option tactic.skipAssignedInstances false in
       rw [hx]
       norm_num [reflTransSymmAux]
 #align path.homotopy.refl_trans_symm Path.Homotopy.reflTransSymm
@@ -142,11 +143,11 @@ set_option linter.uppercaseLean3 false in
 #align path.homotopy.trans_refl_reparam_aux_mem_I Path.Homotopy.transReflReparamAux_mem_I
 
 theorem transReflReparamAux_zero : transReflReparamAux 0 = 0 := by
-  norm_num [transReflReparamAux]
+  set_option tactic.skipAssignedInstances false in norm_num [transReflReparamAux]
 #align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zero
 
 theorem transReflReparamAux_one : transReflReparamAux 1 = 1 := by
-  norm_num [transReflReparamAux]
+  set_option tactic.skipAssignedInstances false in norm_num [transReflReparamAux]
 #align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_one
 
 theorem trans_refl_reparam (p : Path x₀ x₁) :
@@ -193,7 +194,7 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
     [continuity; continuity; continuity; continuity; continuity; continuity; continuity; skip;
       skip] <;>
     · intro x hx
-      norm_num [hx]
+      set_option tactic.skipAssignedInstances false in norm_num [hx]
 #align path.homotopy.continuous_trans_assoc_reparam_aux Path.Homotopy.continuous_transAssocReparamAux
 
 theorem transAssocReparamAux_mem_I (t : I) : transAssocReparamAux t ∈ I := by
@@ -203,11 +204,11 @@ set_option linter.uppercaseLean3 false in
 #align path.homotopy.trans_assoc_reparam_aux_mem_I Path.Homotopy.transAssocReparamAux_mem_I
 
 theorem transAssocReparamAux_zero : transAssocReparamAux 0 = 0 := by
-  norm_num [transAssocReparamAux]
+  set_option tactic.skipAssignedInstances false in norm_num [transAssocReparamAux]
 #align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zero
 
 theorem transAssocReparamAux_one : transAssocReparamAux 1 = 1 := by
-  norm_num [transAssocReparamAux]
+  set_option tactic.skipAssignedInstances false in norm_num [transAssocReparamAux]
 #align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_one
 
 theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
chore(*): shake imports (#10199)
  • Remove Data.Set.Basic from scripts/noshake.json.
  • Remove an exception that was used by examples only, move these examples to a new test file.
  • Drop an exception for Order.Filter.Basic dependency on Control.Traversable.Instances, as the relevant parts were moved to Order.Filter.ListTraverse.
  • Run lake exe shake --fix.
Diff
@@ -7,6 +7,7 @@ import Mathlib.CategoryTheory.Category.Grpd
 import Mathlib.CategoryTheory.Groupoid
 import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.Topology.Homotopy.Path
+import Mathlib.Data.Set.Basic
 
 #align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"3d7987cda72abc473c7cdbbb075170e9ac620042"
 
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -387,8 +387,12 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
     rfl
 #align fundamental_groupoid.fundamental_groupoid_functor FundamentalGroupoid.fundamentalGroupoidFunctor
 
-scoped notation "π" => FundamentalGroupoid.fundamentalGroupoidFunctor
+@[inherit_doc] scoped notation "π" => FundamentalGroupoid.fundamentalGroupoidFunctor
+
+/-- The fundamental groupoid of a topological space. -/
 scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
+
+/-- The functor between fundamental groupoids induced by a continuous map. -/
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
feat(/Equiv/): Add symm_bijective lemmas next to symm_symms (#8444)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: lines <34025592+linesthatinterlace@users.noreply.github.com>

Diff
@@ -114,7 +114,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from the constant path based at `x₁` to
   `p.symm.trans p`. -/
 def reflSymmTrans (p : Path x₀ x₁) : Homotopy (Path.refl x₁) (p.symm.trans p) :=
-  (reflTransSymm p.symm).cast rfl <| congr_arg _ Path.symm_symm
+  (reflTransSymm p.symm).cast rfl <| congr_arg _ (Path.symm_symm _)
 #align path.homotopy.refl_symm_trans Path.Homotopy.reflSymmTrans
 
 end
fix: Fix FundamentalGroupoid being reducible. (#8257)

Instead it is now the opposite -- a structure with a single field.

zulip discussion

Co-authored-by: Adam Topaz <adamtopaz@users.noreply.github.com>

Diff
@@ -266,35 +266,77 @@ end Homotopy
 
 end Path
 
-/-- The fundamental groupoid of a space `X` is defined to be a type synonym for `X`, and we
+/-- The fundamental groupoid of a space `X` is defined to be a wrapper around `X`, and we
 subsequently put a `CategoryTheory.Groupoid` structure on it. -/
-def FundamentalGroupoid (X : Type u) := X
+@[ext]
+structure FundamentalGroupoid (X : Type u) where
+  /-- View a term of `FundamentalGroupoid X` as a term of `X`.-/
+  as : X
 #align fundamental_groupoid FundamentalGroupoid
 
 namespace FundamentalGroupoid
 
-instance {X : Type u} [h : Inhabited X] : Inhabited (FundamentalGroupoid X) := h
-
-attribute [reducible] FundamentalGroupoid
+/-- The equivalence between `X` and the underlying type of its fundamental groupoid.
+  This is useful for transferring constructions (instances, etc.)
+  from `X` to `πₓ X`. -/
+@[simps]
+def equiv (X : Type*) : FundamentalGroupoid X ≃ X where
+  toFun x := x.as
+  invFun x := .mk x
+  left_inv _ := rfl
+  right_inv _ := rfl
+
+@[simp]
+lemma isEmpty_iff (X : Type*) :
+    IsEmpty (FundamentalGroupoid X) ↔ IsEmpty X :=
+  equiv _ |>.isEmpty_congr
+
+instance (X : Type*) [IsEmpty X] :
+    IsEmpty (FundamentalGroupoid X) :=
+  equiv _ |>.isEmpty
+
+@[simp]
+lemma nonempty_iff (X : Type*) :
+    Nonempty (FundamentalGroupoid X) ↔ Nonempty X :=
+  equiv _ |>.nonempty_congr
+
+instance (X : Type*) [Nonempty X] :
+    Nonempty (FundamentalGroupoid X) :=
+  equiv _ |>.nonempty
+
+@[simp]
+lemma subsingleton_iff (X : Type*) :
+    Subsingleton (FundamentalGroupoid X) ↔ Subsingleton X :=
+  equiv _ |>.subsingleton_congr
+
+instance (X : Type*) [Subsingleton X] :
+    Subsingleton (FundamentalGroupoid X) :=
+  equiv _ |>.subsingleton
+
+-- TODO: It seems that `Equiv.nontrivial_congr` doesn't exist.
+-- Once it is added, please add the corresponding lemma and instance.
+
+instance {X : Type u} [Inhabited X] : Inhabited (FundamentalGroupoid X) :=
+  ⟨⟨default⟩⟩
 
 attribute [local instance] Path.Homotopic.setoid
 
 instance : CategoryTheory.Groupoid (FundamentalGroupoid X) where
-  Hom x y := Path.Homotopic.Quotient x y
-  id x := ⟦Path.refl x⟧
+  Hom x y := Path.Homotopic.Quotient x.as y.as
+  id x := ⟦Path.refl x.as⟧
   comp {x y z} := Path.Homotopic.Quotient.comp
   id_comp {x y} f :=
     Quotient.inductionOn f fun a =>
-      show ⟦(Path.refl x).trans a⟧ = ⟦a⟧ from Quotient.sound ⟨Path.Homotopy.reflTrans a⟩
+      show ⟦(Path.refl x.as).trans a⟧ = ⟦a⟧ from Quotient.sound ⟨Path.Homotopy.reflTrans a⟩
   comp_id {x y} f :=
     Quotient.inductionOn f fun a =>
-      show ⟦a.trans (Path.refl y)⟧ = ⟦a⟧ from Quotient.sound ⟨Path.Homotopy.transRefl a⟩
+      show ⟦a.trans (Path.refl y.as)⟧ = ⟦a⟧ from Quotient.sound ⟨Path.Homotopy.transRefl a⟩
   assoc {w x y z} f g h :=
     Quotient.inductionOn₃ f g h fun p q r =>
       show ⟦(p.trans q).trans r⟧ = ⟦p.trans (q.trans r)⟧ from
         Quotient.sound ⟨Path.Homotopy.transAssoc p q r⟩
   inv {x y} p :=
-    Quotient.lift (fun l : Path x y => ⟦l.symm⟧)
+    Quotient.lift (fun l : Path x.as y.as => ⟦l.symm⟧)
       (by
         rintro a b ⟨h⟩
         simp only
@@ -303,24 +345,24 @@ instance : CategoryTheory.Groupoid (FundamentalGroupoid X) where
       p
   inv_comp {x y} f :=
     Quotient.inductionOn f fun a =>
-      show ⟦a.symm.trans a⟧ = ⟦Path.refl y⟧ from
+      show ⟦a.symm.trans a⟧ = ⟦Path.refl y.as⟧ from
         Quotient.sound ⟨(Path.Homotopy.reflSymmTrans a).symm⟩
   comp_inv {x y} f :=
     Quotient.inductionOn f fun a =>
-      show ⟦a.trans a.symm⟧ = ⟦Path.refl x⟧ from
+      show ⟦a.trans a.symm⟧ = ⟦Path.refl x.as⟧ from
         Quotient.sound ⟨(Path.Homotopy.reflTransSymm a).symm⟩
 
 theorem comp_eq (x y z : FundamentalGroupoid X) (p : x ⟶ y) (q : y ⟶ z) : p ≫ q = p.comp q := rfl
 #align fundamental_groupoid.comp_eq FundamentalGroupoid.comp_eq
 
-theorem id_eq_path_refl (x : FundamentalGroupoid X) : 𝟙 x = ⟦Path.refl x⟧ := rfl
+theorem id_eq_path_refl (x : FundamentalGroupoid X) : 𝟙 x = ⟦Path.refl x.as⟧ := rfl
 #align fundamental_groupoid.id_eq_path_refl FundamentalGroupoid.id_eq_path_refl
 
 /-- The functor sending a topological space `X` to its fundamental groupoid. -/
 def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
   obj X := { α := FundamentalGroupoid X }
   map f :=
-    { obj := f
+    { obj := fun x => ⟨f x.as⟩
       map := fun {X Y} p => by exact Path.Homotopic.Quotient.mapFn p f
       map_id := fun X => rfl
       map_comp := fun {x y z} p q => by
@@ -356,26 +398,29 @@ theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.
 /-- Help the typechecker by converting a point in a groupoid back to a point in
 the underlying topological space. -/
 @[reducible]
-def toTop {X : TopCat} (x : πₓ X) : X := x
+def toTop {X : TopCat} (x : πₓ X) : X := x.as
 #align fundamental_groupoid.to_top FundamentalGroupoid.toTop
 
 /-- Help the typechecker by converting a point in a topological space to a
 point in the fundamental groupoid of that space. -/
 @[reducible]
-def fromTop {X : TopCat} (x : X) : πₓ X := x
+def fromTop {X : TopCat} (x : X) : πₓ X := ⟨x⟩
 #align fundamental_groupoid.from_top FundamentalGroupoid.fromTop
 
 /-- Help the typechecker by converting an arrow in the fundamental groupoid of
 a topological space back to a path in that space (i.e., `Path.Homotopic.Quotient`). -/
 -- Porting note: Added `(X := X)` to the type.
 @[reducible]
-def toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) : Path.Homotopic.Quotient (X := X) x₀ x₁ := p
+def toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) :
+    Path.Homotopic.Quotient (X := X) x₀.as x₁.as :=
+  p
 #align fundamental_groupoid.to_path FundamentalGroupoid.toPath
 
 /-- Help the typechecker by converting a path in a topological space to an arrow in the
 fundamental groupoid of that space. -/
 @[reducible]
-def fromPath {X : TopCat} {x₀ x₁ : X} (p : Path.Homotopic.Quotient x₀ x₁) : x₀ ⟶ x₁ := p
+def fromPath {X : TopCat} {x₀ x₁ : X} (p : Path.Homotopic.Quotient x₀ x₁) :
+    FundamentalGroupoid.mk x₀ ⟶ FundamentalGroupoid.mk x₁ := p
 #align fundamental_groupoid.from_path FundamentalGroupoid.fromPath
 
 end FundamentalGroupoid
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -324,8 +324,10 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
       map := fun {X Y} p => by exact Path.Homotopic.Quotient.mapFn p f
       map_id := fun X => rfl
       map_comp := fun {x y z} p q => by
-        refine' Quotient.inductionOn₂ p q fun a b => _
-        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans] }
+        refine Quotient.inductionOn₂ p q fun a b => ?_
+        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans]
+        -- This was not needed before leanprover/lean4#2644
+        erw [ ← Path.Homotopic.comp_lift]; rfl}
   map_id X := by
     simp only
     change _ = (⟨_, _, _⟩ : FundamentalGroupoid X ⥤ FundamentalGroupoid X)
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -324,10 +324,8 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
       map := fun {X Y} p => by exact Path.Homotopic.Quotient.mapFn p f
       map_id := fun X => rfl
       map_comp := fun {x y z} p q => by
-        refine Quotient.inductionOn₂ p q fun a b => ?_
-        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans]
-        -- This was not needed before leanprover/lean4#2644
-        erw [ ← Path.Homotopic.comp_lift]; rfl}
+        refine' Quotient.inductionOn₂ p q fun a b => _
+        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans] }
   map_id X := by
     simp only
     change _ = (⟨_, _, _⟩ : FundamentalGroupoid X ⥤ FundamentalGroupoid X)
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -324,8 +324,10 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
       map := fun {X Y} p => by exact Path.Homotopic.Quotient.mapFn p f
       map_id := fun X => rfl
       map_comp := fun {x y z} p q => by
-        refine' Quotient.inductionOn₂ p q fun a b => _
-        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans] }
+        refine Quotient.inductionOn₂ p q fun a b => ?_
+        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans]
+        -- This was not needed before leanprover/lean4#2644
+        erw [ ← Path.Homotopic.comp_lift]; rfl}
   map_id X := by
     simp only
     change _ = (⟨_, _, _⟩ : FundamentalGroupoid X ⥤ FundamentalGroupoid X)
feat: fix norm num with arguments (#6600)

norm_num was passing the wrong syntax node to elabSimpArgs when elaborating, which essentially had the effect of ignoring all arguments it was passed, i.e. norm_num [add_comm] would not try to commute addition in the simp step. The fix itself is very simple (though not obvious to debug!), probably using TSyntax more would help avoid such issues in future.

Due to this bug many norm_num [blah] became rw [blah]; norm_num or similar, sometimes with porting notes, sometimes not, we fix these porting notes and other regressions during the port also.

Interestingly cancel_denoms uses norm_num [<- mul_assoc] internally, so cancel_denoms also got stronger with this change.

Diff
@@ -50,9 +50,7 @@ theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux := by
   · continuity
   · continuity
   intro x hx
-  -- Porting note: norm_num ignores arguments.
-  rw [hx, mul_assoc]
-  norm_num
+  norm_num [hx, mul_assoc]
 #align path.homotopy.continuous_refl_trans_symm_aux Path.Homotopy.continuous_reflTransSymmAux
 
 theorem reflTransSymmAux_mem_I (x : I × I) : reflTransSymmAux x ∈ I := by
@@ -100,9 +98,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
       · simp only [Set.Icc.coe_one, one_mul, coe_mk_mk, Function.comp_apply]
         congr 1
         ext
-        -- Porting note: norm_num ignores arguments.
-        simp [sub_sub_eq_add_sub]
-        norm_num
+        norm_num [sub_sub_eq_add_sub]
       · rw [unitInterval.two_mul_sub_one_mem_iff]
         exact ⟨(not_le.1 h).le, unitInterval.le_one x⟩
   prop' t x hx := by
@@ -112,9 +108,7 @@ def reflTransSymm (p : Path x₀ x₁) : Homotopy (Path.refl x₀) (p.trans p.sy
     | inl hx
     | inr hx =>
       rw [hx]
-      simp only [reflTransSymmAux, Set.Icc.coe_zero, Set.Icc.coe_one, one_div, mul_one,
-        inv_nonneg, mul_zero, sub_zero, sub_self, Path.source, Path.target, and_self]
-      norm_num
+      norm_num [reflTransSymmAux]
 #align path.homotopy.refl_trans_symm Path.Homotopy.reflTransSymm
 
 /-- For any path `p` from `x₀` to `x₁`, we have a homotopy from the constant path based at `x₁` to
@@ -137,7 +131,6 @@ theorem continuous_transReflReparamAux : Continuous transReflReparamAux := by
   refine' continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _) _ <;>
     [continuity; continuity; continuity; continuity; skip]
   intro x hx
-  -- Porting note: norm_num ignores arguments.
   simp [hx]
 #align path.homotopy.continuous_trans_refl_reparam_aux Path.Homotopy.continuous_transReflReparamAux
 
@@ -148,15 +141,11 @@ set_option linter.uppercaseLean3 false in
 #align path.homotopy.trans_refl_reparam_aux_mem_I Path.Homotopy.transReflReparamAux_mem_I
 
 theorem transReflReparamAux_zero : transReflReparamAux 0 = 0 := by
-  -- Porting note: norm_num ignores arguments.
-  simp [transReflReparamAux]
-  norm_num
+  norm_num [transReflReparamAux]
 #align path.homotopy.trans_refl_reparam_aux_zero Path.Homotopy.transReflReparamAux_zero
 
 theorem transReflReparamAux_one : transReflReparamAux 1 = 1 := by
-  -- Porting note: norm_num ignores arguments.
-  simp [transReflReparamAux]
-  norm_num
+  norm_num [transReflReparamAux]
 #align path.homotopy.trans_refl_reparam_aux_one Path.Homotopy.transReflReparamAux_one
 
 theorem trans_refl_reparam (p : Path x₀ x₁) :
@@ -203,9 +192,7 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
     [continuity; continuity; continuity; continuity; continuity; continuity; continuity; skip;
       skip] <;>
     · intro x hx
-      -- Porting note: norm_num ignores arguments.
-      simp [hx]
-      norm_num
+      norm_num [hx]
 #align path.homotopy.continuous_trans_assoc_reparam_aux Path.Homotopy.continuous_transAssocReparamAux
 
 theorem transAssocReparamAux_mem_I (t : I) : transAssocReparamAux t ∈ I := by
@@ -215,15 +202,11 @@ set_option linter.uppercaseLean3 false in
 #align path.homotopy.trans_assoc_reparam_aux_mem_I Path.Homotopy.transAssocReparamAux_mem_I
 
 theorem transAssocReparamAux_zero : transAssocReparamAux 0 = 0 := by
-  -- Porting note: norm_num ignores arguments.
-  simp [transAssocReparamAux]
-  norm_num
+  norm_num [transAssocReparamAux]
 #align path.homotopy.trans_assoc_reparam_aux_zero Path.Homotopy.transAssocReparamAux_zero
 
 theorem transAssocReparamAux_one : transAssocReparamAux 1 = 1 := by
-  -- Porting note: norm_num ignores arguments.
-  simp [transAssocReparamAux]
-  norm_num
+  norm_num [transAssocReparamAux]
 #align path.homotopy.trans_assoc_reparam_aux_one Path.Homotopy.transAssocReparamAux_one
 
 theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q : Path x₁ x₂) (r : Path x₂ x₃) :
chore: remove unused simps (#6632)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -264,8 +264,7 @@ theorem trans_assoc_reparam {x₀ x₁ x₂ x₃ : X} (p : Path x₀ x₁) (q :
     linarith
   · exfalso
     linarith
-  · simp only [h₁, if_false, dif_neg (show ¬False from id)]
-    congr
+  · congr
     ring
 #align path.homotopy.trans_assoc_reparam Path.Homotopy.trans_assoc_reparam
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2021 Shing Tak Lam. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Shing Tak Lam
-
-! This file was ported from Lean 3 source module algebraic_topology.fundamental_groupoid.basic
-! leanprover-community/mathlib commit 3d7987cda72abc473c7cdbbb075170e9ac620042
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Category.Grpd
 import Mathlib.CategoryTheory.Groupoid
 import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.Topology.Homotopy.Path
 
+#align_import algebraic_topology.fundamental_groupoid.basic from "leanprover-community/mathlib"@"3d7987cda72abc473c7cdbbb075170e9ac620042"
+
 /-!
 # Fundamental groupoid of a space
 
chore: scope notations from category theory. (#5685)

Make sure in particular one can import Mathlib.Tactic for teaching without getting category theory notations in scope. Note that only two files needed an extra open.

Diff
@@ -22,6 +22,7 @@ homotopy equivalence. With this, the fundamental group of `X` based at `x` is ju
 group of `x`.
 -/
 
+open CategoryTheory
 
 universe u v
 
feat: change ConcreteCategory.hasCoeToFun to FunLike (#4693)
Diff
@@ -345,8 +345,7 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
       map_id := fun X => rfl
       map_comp := fun {x y z} p q => by
         refine' Quotient.inductionOn₂ p q fun a b => _
-        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans]
-        rfl }
+        simp only [comp_eq, ← Path.Homotopic.map_lift, ← Path.Homotopic.comp_lift, Path.map_trans] }
   map_id X := by
     simp only
     change _ = (⟨_, _, _⟩ : FundamentalGroupoid X ⥤ FundamentalGroupoid X)
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -391,7 +391,7 @@ a topological space back to a path in that space (i.e., `Path.Homotopic.Quotient
 def toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) : Path.Homotopic.Quotient (X := X) x₀ x₁ := p
 #align fundamental_groupoid.to_path FundamentalGroupoid.toPath
 
-/-- Help the typechecker by convering a path in a topological space to an arrow in the
+/-- Help the typechecker by converting a path in a topological space to an arrow in the
 fundamental groupoid of that space. -/
 @[reducible]
 def fromPath {X : TopCat} {x₀ x₁ : X} (p : Path.Homotopic.Quotient x₀ x₁) : x₀ ⟶ x₁ := p
chore: tidy various files (#4466)
Diff
@@ -50,8 +50,7 @@ theorem continuous_reflTransSymmAux : Continuous reflTransSymmAux := by
   · continuity
   · continuity
   · continuity
-  · -- Porting note: was `continuity`
-    refine Continuous.mul ?_ (Continuous.sub ?_ ?_) <;> continuity
+  · continuity
   intro x hx
   -- Porting note: norm_num ignores arguments.
   rw [hx, mul_assoc]
@@ -365,13 +364,8 @@ def fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd where
     rfl
 #align fundamental_groupoid.fundamental_groupoid_functor FundamentalGroupoid.fundamentalGroupoidFunctor
 
--- mathport name: fundamental_groupoid_functor
 scoped notation "π" => FundamentalGroupoid.fundamentalGroupoidFunctor
-
--- mathport name: fundamental_groupoid_functor.obj
 scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
-
--- mathport name: fundamental_groupoid_functor.map
 scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
 
 theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -176,7 +176,7 @@ theorem trans_refl_reparam (p : Path x₀ x₁) :
   · simp
 #align path.homotopy.trans_refl_reparam Path.Homotopy.trans_refl_reparam
 
-/-- For any path `p` from `x₀` to `x₁`, we have a homotopy from `p.trans (path.refl x₁)` to `p`. -/
+/-- For any path `p` from `x₀` to `x₁`, we have a homotopy from `p.trans (Path.refl x₁)` to `p`. -/
 def transRefl (p : Path x₀ x₁) : Homotopy (p.trans (Path.refl x₁)) p :=
   ((Homotopy.reparam p (fun t => ⟨transReflReparamAux t, transReflReparamAux_mem_I t⟩)
           (by continuity) (Subtype.ext transReflReparamAux_zero)
chore: update std 05-22 (#4248)

The main breaking change is that tac <;> [t1, t2] is now written tac <;> [t1; t2], to avoid clashing with tactics like cases and use that take comma-separated lists.

Diff
@@ -138,7 +138,7 @@ def transReflReparamAux (t : I) : ℝ :=
 @[continuity]
 theorem continuous_transReflReparamAux : Continuous transReflReparamAux := by
   refine' continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _) _ <;>
-    [continuity, continuity, continuity, continuity, skip]
+    [continuity; continuity; continuity; continuity; skip]
   intro x hx
   -- Porting note: norm_num ignores arguments.
   simp [hx]
@@ -203,7 +203,7 @@ theorem continuous_transAssocReparamAux : Continuous transAssocReparamAux := by
   refine' continuous_if_le _ _ (Continuous.continuousOn _)
       (continuous_if_le _ _ (Continuous.continuousOn _) (Continuous.continuousOn _) _).continuousOn
       _ <;>
-    [continuity, continuity, continuity, continuity, continuity, continuity, continuity, skip,
+    [continuity; continuity; continuity; continuity; continuity; continuity; continuity; skip;
       skip] <;>
     · intro x hx
       -- Porting note: norm_num ignores arguments.
chore: rename Top->TopCat (#4089)
Diff
@@ -10,7 +10,7 @@ Authors: Shing Tak Lam
 -/
 import Mathlib.CategoryTheory.Category.Grpd
 import Mathlib.CategoryTheory.Groupoid
-import Mathlib.Topology.Category.Top.Basic
+import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.Topology.Homotopy.Path
 
 /-!
feat: port AlgebraicTopology.FundamentalGroupoid.Basic (#3955)

Co-authored-by: int-y1 <jason_yuen2007@hotmail.com>

Dependencies 10 + 637

638 files ported (98.5%)
265274 lines ported (98.0%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file