combinatorics.quiver.castMathlib.Combinatorics.Quiver.Cast

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Antoine Labelle, Rémi Bottinelli. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle, Rémi Bottinelli
 -/
-import Mathbin.Combinatorics.Quiver.Basic
-import Mathbin.Combinatorics.Quiver.Path
+import Combinatorics.Quiver.Basic
+import Combinatorics.Quiver.Path
 
 #align_import combinatorics.quiver.cast from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Antoine Labelle, Rémi Bottinelli. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle, Rémi Bottinelli
-
-! This file was ported from Lean 3 source module combinatorics.quiver.cast
-! leanprover-community/mathlib commit 448144f7ae193a8990cb7473c9e9a01990f64ac7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Combinatorics.Quiver.Basic
 import Mathbin.Combinatorics.Quiver.Path
 
+#align_import combinatorics.quiver.cast from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
+
 /-!
 
 # Rewriting arrows and paths along vertex equalities
Diff
@@ -42,32 +42,44 @@ def Hom.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) : u' ⟶
 #align quiver.hom.cast Quiver.Hom.cast
 -/
 
+#print Quiver.Hom.cast_eq_cast /-
 theorem Hom.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
     e.cast hu hv = cast (by rw [hu, hv]) e := by subst_vars; rfl
 #align quiver.hom.cast_eq_cast Quiver.Hom.cast_eq_cast
+-/
 
+#print Quiver.Hom.cast_rfl_rfl /-
 @[simp]
 theorem Hom.cast_rfl_rfl {u v : U} (e : u ⟶ v) : e.cast rfl rfl = e :=
   rfl
 #align quiver.hom.cast_rfl_rfl Quiver.Hom.cast_rfl_rfl
+-/
 
+#print Quiver.Hom.cast_cast /-
 @[simp]
 theorem Hom.cast_cast {u v u' v' u'' v'' : U} (e : u ⟶ v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
     (e.cast hu hv).cast hu' hv' = e.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.hom.cast_cast Quiver.Hom.cast_cast
+-/
 
+#print Quiver.Hom.cast_heq /-
 theorem Hom.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
     HEq (e.cast hu hv) e := by subst_vars; rfl
 #align quiver.hom.cast_heq Quiver.Hom.cast_heq
+-/
 
+#print Quiver.Hom.cast_eq_iff_heq /-
 theorem Hom.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
     e.cast hu hv = e' ↔ HEq e e' := by rw [hom.cast_eq_cast]; exact cast_eq_iff_heq
 #align quiver.hom.cast_eq_iff_heq Quiver.Hom.cast_eq_iff_heq
+-/
 
+#print Quiver.Hom.eq_cast_iff_heq /-
 theorem Hom.eq_cast_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
     e' = e.cast hu hv ↔ HEq e' e := by rw [eq_comm, hom.cast_eq_iff_heq]; exact ⟨HEq.symm, HEq.symm⟩
 #align quiver.hom.eq_cast_iff_heq Quiver.Hom.eq_cast_iff_heq
+-/
 
 /-!
 ### Rewriting paths along equalities of vertices
@@ -83,60 +95,82 @@ def Path.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) : Path
 #align quiver.path.cast Quiver.Path.cast
 -/
 
+#print Quiver.Path.cast_eq_cast /-
 theorem Path.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
     p.cast hu hv = cast (by rw [hu, hv]) p :=
   Eq.drec (Eq.drec (Eq.refl (Path.cast (Eq.refl u) (Eq.refl v) p)) hu) hv
 #align quiver.path.cast_eq_cast Quiver.Path.cast_eq_cast
+-/
 
+#print Quiver.Path.cast_rfl_rfl /-
 @[simp]
 theorem Path.cast_rfl_rfl {u v : U} (p : Path u v) : p.cast rfl rfl = p :=
   rfl
 #align quiver.path.cast_rfl_rfl Quiver.Path.cast_rfl_rfl
+-/
 
+#print Quiver.Path.cast_cast /-
 @[simp]
 theorem Path.cast_cast {u v u' v' u'' v'' : U} (p : Path u v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
     (p.cast hu hv).cast hu' hv' = p.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.path.cast_cast Quiver.Path.cast_cast
+-/
 
+#print Quiver.Path.cast_nil /-
 @[simp]
 theorem Path.cast_nil {u u' : U} (hu : u = u') : (Path.nil : Path u u).cast hu hu = Path.nil := by
   subst_vars; rfl
 #align quiver.path.cast_nil Quiver.Path.cast_nil
+-/
 
+#print Quiver.Path.cast_heq /-
 theorem Path.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
     HEq (p.cast hu hv) p := by rw [path.cast_eq_cast]; exact cast_hEq _ _
 #align quiver.path.cast_heq Quiver.Path.cast_heq
+-/
 
+#print Quiver.Path.cast_eq_iff_heq /-
 theorem Path.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v)
     (p' : Path u' v') : p.cast hu hv = p' ↔ HEq p p' := by rw [path.cast_eq_cast];
   exact cast_eq_iff_heq
 #align quiver.path.cast_eq_iff_heq Quiver.Path.cast_eq_iff_heq
+-/
 
+#print Quiver.Path.eq_cast_iff_heq /-
 theorem Path.eq_cast_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v)
     (p' : Path u' v') : p' = p.cast hu hv ↔ HEq p' p :=
   ⟨fun h => ((p.cast_eq_iff_heq hu hv p').1 h.symm).symm, fun h =>
     ((p.cast_eq_iff_heq hu hv p').2 h.symm).symm⟩
 #align quiver.path.eq_cast_iff_heq Quiver.Path.eq_cast_iff_heq
+-/
 
+#print Quiver.Path.cast_cons /-
 theorem Path.cast_cons {u v w u' w' : U} (p : Path u v) (e : v ⟶ w) (hu : u = u') (hw : w = w') :
     (p.cons e).cast hu hw = (p.cast hu rfl).cons (e.cast rfl hw) := by subst_vars; rfl
 #align quiver.path.cast_cons Quiver.Path.cast_cons
+-/
 
+#print Quiver.cast_eq_of_cons_eq_cons /-
 theorem cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
     {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : p.cast rfl (obj_eq_of_cons_eq_cons h) = p' := by
   rw [path.cast_eq_iff_heq]; exact heq_of_cons_eq_cons h
 #align quiver.cast_eq_of_cons_eq_cons Quiver.cast_eq_of_cons_eq_cons
+-/
 
+#print Quiver.hom_cast_eq_of_cons_eq_cons /-
 theorem hom_cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
     {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : e.cast (obj_eq_of_cons_eq_cons h) rfl = e' := by
   rw [hom.cast_eq_iff_heq]; exact hom_heq_of_cons_eq_cons h
 #align quiver.hom_cast_eq_of_cons_eq_cons Quiver.hom_cast_eq_of_cons_eq_cons
+-/
 
+#print Quiver.eq_nil_of_length_zero /-
 theorem eq_nil_of_length_zero {u v : U} (p : Path u v) (hzero : p.length = 0) :
     p.cast (eq_of_length_zero p hzero) rfl = Path.nil := by
   cases p <;> simpa only [Nat.succ_ne_zero, length_cons] using hzero
 #align quiver.eq_nil_of_length_zero Quiver.eq_nil_of_length_zero
+-/
 
 end Quiver
 
Diff
@@ -42,65 +42,29 @@ def Hom.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) : u' ⟶
 #align quiver.hom.cast Quiver.Hom.cast
 -/
 
-/- warning: quiver.hom.cast_eq_cast -> Quiver.Hom.cast_eq_cast is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u' v' hu hv e) (cast.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Eq.mpr.{0} (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u2} U u (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 _a v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) (rfl.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) u' hu)) (Eq.mpr.{0} (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u2} U v (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' _a) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) (rfl.{1} Prop (Eq.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v) (Quiver.Hom.{succ u1, u2} U _inst_1 u' v'))) v' hv)) (rfl.{succ (succ u1)} Type.{u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v')))) e)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) (cast.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Eq.mpr.{0} (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U u (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 _a v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) u' hu)) (Eq.mpr.{0} (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U v (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' _a) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) v' hv)) (Eq.refl.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')))) e)
-Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_eq_cast Quiver.Hom.cast_eq_castₓ'. -/
 theorem Hom.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
     e.cast hu hv = cast (by rw [hu, hv]) e := by subst_vars; rfl
 #align quiver.hom.cast_eq_cast Quiver.Hom.cast_eq_cast
 
-/- warning: quiver.hom.cast_rfl_rfl -> Quiver.Hom.cast_rfl_rfl is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u v (rfl.{succ u2} U u) (rfl.{succ u2} U v) e) e
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u v (rfl.{succ u1} U u) (rfl.{succ u1} U v) e) e
-Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_rfl_rfl Quiver.Hom.cast_rfl_rflₓ'. -/
 @[simp]
 theorem Hom.cast_rfl_rfl {u v : U} (e : u ⟶ v) : e.cast rfl rfl = e :=
   rfl
 #align quiver.hom.cast_rfl_rfl Quiver.Hom.cast_rfl_rfl
 
-/- warning: quiver.hom.cast_cast -> Quiver.Hom.cast_cast is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} {u'' : U} {v'' : U} (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v) (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (hu' : Eq.{succ u2} U u' u'') (hv' : Eq.{succ u2} U v' v''), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u'' v'') (Quiver.Hom.cast.{u1, u2} U _inst_1 u' v' u'' v'' hu' hv' (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u' v' hu hv e)) (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u'' v'' (Eq.trans.{succ u2} U u u' u'' hu hu') (Eq.trans.{succ u2} U v v' v'' hv hv') e)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} {u'' : U} {v'' : U} (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v) (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (hu' : Eq.{succ u1} U u' u'') (hv' : Eq.{succ u1} U v' v''), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u'' v'') (Quiver.Hom.cast.{u2, u1} U _inst_1 u' v' u'' v'' hu' hv' (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e)) (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u'' v'' (Eq.trans.{succ u1} U u u' u'' hu hu') (Eq.trans.{succ u1} U v v' v'' hv hv') e)
-Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_cast Quiver.Hom.cast_castₓ'. -/
 @[simp]
 theorem Hom.cast_cast {u v u' v' u'' v'' : U} (e : u ⟶ v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
     (e.cast hu hv).cast hu' hv' = e.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.hom.cast_cast Quiver.Hom.cast_cast
 
-/- warning: quiver.hom.cast_heq -> Quiver.Hom.cast_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v), HEq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u' v' hu hv e) (Quiver.Hom.{succ u1, u2} U _inst_1 u v) e
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v), HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e
-Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_heq Quiver.Hom.cast_heqₓ'. -/
 theorem Hom.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
     HEq (e.cast hu hv) e := by subst_vars; rfl
 #align quiver.hom.cast_heq Quiver.Hom.cast_heq
 
-/- warning: quiver.hom.cast_eq_iff_heq -> Quiver.Hom.cast_eq_iff_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v) (e' : Quiver.Hom.{succ u1, u2} U _inst_1 u' v'), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u' v' hu hv e) e') (HEq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u v) e (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') e')
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v) (e' : Quiver.Hom.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) e') (HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e')
-Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_eq_iff_heq Quiver.Hom.cast_eq_iff_heqₓ'. -/
 theorem Hom.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
     e.cast hu hv = e' ↔ HEq e e' := by rw [hom.cast_eq_cast]; exact cast_eq_iff_heq
 #align quiver.hom.cast_eq_iff_heq Quiver.Hom.cast_eq_iff_heq
 
-/- warning: quiver.hom.eq_cast_iff_heq -> Quiver.Hom.eq_cast_iff_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (e : Quiver.Hom.{succ u1, u2} U _inst_1 u v) (e' : Quiver.Hom.{succ u1, u2} U _inst_1 u' v'), Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') e' (Quiver.Hom.cast.{u1, u2} U _inst_1 u v u' v' hu hv e)) (HEq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 u' v') e' (Quiver.Hom.{succ u1, u2} U _inst_1 u v) e)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v) (e' : Quiver.Hom.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e' (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e)) (HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e' (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e)
-Case conversion may be inaccurate. Consider using '#align quiver.hom.eq_cast_iff_heq Quiver.Hom.eq_cast_iff_heqₓ'. -/
 theorem Hom.eq_cast_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
     e' = e.cast hu hv ↔ HEq e' e := by rw [eq_comm, hom.cast_eq_iff_heq]; exact ⟨HEq.symm, HEq.symm⟩
 #align quiver.hom.eq_cast_iff_heq Quiver.Hom.eq_cast_iff_heq
@@ -119,122 +83,56 @@ def Path.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) : Path
 #align quiver.path.cast Quiver.Path.cast
 -/
 
-/- warning: quiver.path.cast_eq_cast -> Quiver.Path.cast_eq_cast is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (p : Quiver.Path.{succ u1, u2} U _inst_1 u v), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v' hu hv p) (cast.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Eq.mpr.{0} (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u2} U u (fun (_a : U) => Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 _a v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) (rfl.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) u' hu)) (Eq.mpr.{0} (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u2} U v (fun (_a : U) => Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' _a) (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) (rfl.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v) (Quiver.Path.{succ u1, u2} U _inst_1 u' v'))) v' hv)) (rfl.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v')))) p)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p) (cast.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Eq.mpr.{0} (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U u (fun (_a : U) => Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 _a v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) u' hu)) (Eq.mpr.{0} (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U v (fun (_a : U) => Eq.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' _a) (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v) (Quiver.Path.{succ u2, u1} U _inst_1 u' v'))) v' hv)) (Eq.refl.{succ (max (succ u2) (succ u1))} Sort.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v')))) p)
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_eq_cast Quiver.Path.cast_eq_castₓ'. -/
 theorem Path.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
     p.cast hu hv = cast (by rw [hu, hv]) p :=
   Eq.drec (Eq.drec (Eq.refl (Path.cast (Eq.refl u) (Eq.refl v) p)) hu) hv
 #align quiver.path.cast_eq_cast Quiver.Path.cast_eq_cast
 
-/- warning: quiver.path.cast_rfl_rfl -> Quiver.Path.cast_rfl_rfl is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} (p : Quiver.Path.{succ u1, u2} U _inst_1 u v), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) (Quiver.Path.cast.{u1, u2} U _inst_1 u v u v (rfl.{succ u2} U u) (rfl.{succ u2} U v) p) p
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} (p : Quiver.Path.{succ u2, u1} U _inst_1 u v), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) (Quiver.Path.cast.{u2, u1} U _inst_1 u v u v (rfl.{succ u1} U u) (rfl.{succ u1} U v) p) p
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_rfl_rfl Quiver.Path.cast_rfl_rflₓ'. -/
 @[simp]
 theorem Path.cast_rfl_rfl {u v : U} (p : Path u v) : p.cast rfl rfl = p :=
   rfl
 #align quiver.path.cast_rfl_rfl Quiver.Path.cast_rfl_rfl
 
-/- warning: quiver.path.cast_cast -> Quiver.Path.cast_cast is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} {u'' : U} {v'' : U} (p : Quiver.Path.{succ u1, u2} U _inst_1 u v) (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (hu' : Eq.{succ u2} U u' u'') (hv' : Eq.{succ u2} U v' v''), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u'' v'') (Quiver.Path.cast.{u1, u2} U _inst_1 u' v' u'' v'' hu' hv' (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v' hu hv p)) (Quiver.Path.cast.{u1, u2} U _inst_1 u v u'' v'' (Eq.trans.{succ u2} U u u' u'' hu hu') (Eq.trans.{succ u2} U v v' v'' hv hv') p)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} {u'' : U} {v'' : U} (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (hu' : Eq.{succ u1} U u' u'') (hv' : Eq.{succ u1} U v' v''), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u'' v'') (Quiver.Path.cast.{u2, u1} U _inst_1 u' v' u'' v'' hu' hv' (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p)) (Quiver.Path.cast.{u2, u1} U _inst_1 u v u'' v'' (Eq.trans.{succ u1} U u u' u'' hu hu') (Eq.trans.{succ u1} U v v' v'' hv hv') p)
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_cast Quiver.Path.cast_castₓ'. -/
 @[simp]
 theorem Path.cast_cast {u v u' v' u'' v'' : U} (p : Path u v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
     (p.cast hu hv).cast hu' hv' = p.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.path.cast_cast Quiver.Path.cast_cast
 
-/- warning: quiver.path.cast_nil -> Quiver.Path.cast_nil is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {u' : U} (hu : Eq.{succ u2} U u u'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' u') (Quiver.Path.cast.{u1, u2} U _inst_1 u u u' u' hu hu (Quiver.Path.nil.{succ u1, u2} U _inst_1 u)) (Quiver.Path.nil.{succ u1, u2} U _inst_1 u')
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {u' : U} (hu : Eq.{succ u1} U u u'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' u') (Quiver.Path.cast.{u2, u1} U _inst_1 u u u' u' hu hu (Quiver.Path.nil.{succ u2, u1} U _inst_1 u)) (Quiver.Path.nil.{succ u2, u1} U _inst_1 u')
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_nil Quiver.Path.cast_nilₓ'. -/
 @[simp]
 theorem Path.cast_nil {u u' : U} (hu : u = u') : (Path.nil : Path u u).cast hu hu = Path.nil := by
   subst_vars; rfl
 #align quiver.path.cast_nil Quiver.Path.cast_nil
 
-/- warning: quiver.path.cast_heq -> Quiver.Path.cast_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (p : Quiver.Path.{succ u1, u2} U _inst_1 u v), HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v' hu hv p) (Quiver.Path.{succ u1, u2} U _inst_1 u v) p
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v), HEq.{max (succ u1) (succ u2)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p) (Quiver.Path.{succ u2, u1} U _inst_1 u v) p
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_heq Quiver.Path.cast_heqₓ'. -/
 theorem Path.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
     HEq (p.cast hu hv) p := by rw [path.cast_eq_cast]; exact cast_hEq _ _
 #align quiver.path.cast_heq Quiver.Path.cast_heq
 
-/- warning: quiver.path.cast_eq_iff_heq -> Quiver.Path.cast_eq_iff_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (p : Quiver.Path.{succ u1, u2} U _inst_1 u v) (p' : Quiver.Path.{succ u1, u2} U _inst_1 u' v'), Iff (Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v' hu hv p) p') (HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v) p (Quiver.Path.{succ u1, u2} U _inst_1 u' v') p')
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (p' : Quiver.Path.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p) p') (HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) p (Quiver.Path.{succ u2, u1} U _inst_1 u' v') p')
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_eq_iff_heq Quiver.Path.cast_eq_iff_heqₓ'. -/
 theorem Path.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v)
     (p' : Path u' v') : p.cast hu hv = p' ↔ HEq p p' := by rw [path.cast_eq_cast];
   exact cast_eq_iff_heq
 #align quiver.path.cast_eq_iff_heq Quiver.Path.cast_eq_iff_heq
 
-/- warning: quiver.path.eq_cast_iff_heq -> Quiver.Path.eq_cast_iff_heq is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u2} U u u') (hv : Eq.{succ u2} U v v') (p : Quiver.Path.{succ u1, u2} U _inst_1 u v) (p' : Quiver.Path.{succ u1, u2} U _inst_1 u' v'), Iff (Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') p' (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v' hu hv p)) (HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' v') p' (Quiver.Path.{succ u1, u2} U _inst_1 u v) p)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (p' : Quiver.Path.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') p' (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p)) (HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') p' (Quiver.Path.{succ u2, u1} U _inst_1 u v) p)
-Case conversion may be inaccurate. Consider using '#align quiver.path.eq_cast_iff_heq Quiver.Path.eq_cast_iff_heqₓ'. -/
 theorem Path.eq_cast_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v)
     (p' : Path u' v') : p' = p.cast hu hv ↔ HEq p' p :=
   ⟨fun h => ((p.cast_eq_iff_heq hu hv p').1 h.symm).symm, fun h =>
     ((p.cast_eq_iff_heq hu hv p').2 h.symm).symm⟩
 #align quiver.path.eq_cast_iff_heq Quiver.Path.eq_cast_iff_heq
 
-/- warning: quiver.path.cast_cons -> Quiver.Path.cast_cons is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {w : U} {u' : U} {w' : U} (p : Quiver.Path.{succ u1, u2} U _inst_1 u v) (e : Quiver.Hom.{succ u1, u2} U _inst_1 v w) (hu : Eq.{succ u2} U u u') (hw : Eq.{succ u2} U w w'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u' w') (Quiver.Path.cast.{u1, u2} U _inst_1 u w u' w' hu hw (Quiver.Path.cons.{succ u1, u2} U _inst_1 u v w p e)) (Quiver.Path.cons.{succ u1, u2} U _inst_1 u' v w' (Quiver.Path.cast.{u1, u2} U _inst_1 u v u' v hu (rfl.{succ u2} U v) p) (Quiver.Hom.cast.{u1, u2} U _inst_1 v w v w' (rfl.{succ u2} U v) hw e))
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {w : U} {u' : U} {w' : U} (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (e : Quiver.Hom.{succ u2, u1} U _inst_1 v w) (hu : Eq.{succ u1} U u u') (hw : Eq.{succ u1} U w w'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' w') (Quiver.Path.cast.{u2, u1} U _inst_1 u w u' w' hu hw (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e)) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u' v w' (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v hu (rfl.{succ u1} U v) p) (Quiver.Hom.cast.{u2, u1} U _inst_1 v w v w' (rfl.{succ u1} U v) hw e))
-Case conversion may be inaccurate. Consider using '#align quiver.path.cast_cons Quiver.Path.cast_consₓ'. -/
 theorem Path.cast_cons {u v w u' w' : U} (p : Path u v) (e : v ⟶ w) (hu : u = u') (hw : w = w') :
     (p.cons e).cast hu hw = (p.cast hu rfl).cons (e.cast rfl hw) := by subst_vars; rfl
 #align quiver.path.cast_cons Quiver.Path.cast_cons
 
-/- warning: quiver.cast_eq_of_cons_eq_cons -> Quiver.cast_eq_of_cons_eq_cons is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u1, u2} U _inst_1 u v} {p' : Quiver.Path.{succ u1, u2} U _inst_1 u v'} {e : Quiver.Hom.{succ u1, u2} U _inst_1 v w} {e' : Quiver.Hom.{succ u1, u2} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u w) (Quiver.Path.cons.{succ u1, u2} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u1, u2} U _inst_1 u v' w p' e')), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u v') (Quiver.Path.cast.{u1, u2} U _inst_1 u v u v' (rfl.{succ u2} U u) (Quiver.Path.obj_eq_of_cons_eq_cons.{u2, succ u1} U _inst_1 u v v' w p p' e e' h) p) p'
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u2, u1} U _inst_1 u v} {p' : Quiver.Path.{succ u2, u1} U _inst_1 u v'} {e : Quiver.Hom.{succ u2, u1} U _inst_1 v w} {e' : Quiver.Hom.{succ u2, u1} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u w) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v' w p' e')), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u v' (rfl.{succ u1} U u) (Quiver.Path.obj_eq_of_cons_eq_cons.{succ u2, u1} U _inst_1 u v v' w p p' e e' h) p) p'
-Case conversion may be inaccurate. Consider using '#align quiver.cast_eq_of_cons_eq_cons Quiver.cast_eq_of_cons_eq_consₓ'. -/
 theorem cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
     {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : p.cast rfl (obj_eq_of_cons_eq_cons h) = p' := by
   rw [path.cast_eq_iff_heq]; exact heq_of_cons_eq_cons h
 #align quiver.cast_eq_of_cons_eq_cons Quiver.cast_eq_of_cons_eq_cons
 
-/- warning: quiver.hom_cast_eq_of_cons_eq_cons -> Quiver.hom_cast_eq_of_cons_eq_cons is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u1, u2} U _inst_1 u v} {p' : Quiver.Path.{succ u1, u2} U _inst_1 u v'} {e : Quiver.Hom.{succ u1, u2} U _inst_1 v w} {e' : Quiver.Hom.{succ u1, u2} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 u w) (Quiver.Path.cons.{succ u1, u2} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u1, u2} U _inst_1 u v' w p' e')), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} U _inst_1 v' w) (Quiver.Hom.cast.{u1, u2} U _inst_1 v w v' w (Quiver.Path.obj_eq_of_cons_eq_cons.{u2, succ u1} U _inst_1 u v v' w p p' e e' h) (rfl.{succ u2} U w) e) e'
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u2, u1} U _inst_1 u v} {p' : Quiver.Path.{succ u2, u1} U _inst_1 u v'} {e : Quiver.Hom.{succ u2, u1} U _inst_1 v w} {e' : Quiver.Hom.{succ u2, u1} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u w) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v' w p' e')), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 v' w) (Quiver.Hom.cast.{u2, u1} U _inst_1 v w v' w (Quiver.Path.obj_eq_of_cons_eq_cons.{succ u2, u1} U _inst_1 u v v' w p p' e e' h) (rfl.{succ u1} U w) e) e'
-Case conversion may be inaccurate. Consider using '#align quiver.hom_cast_eq_of_cons_eq_cons Quiver.hom_cast_eq_of_cons_eq_consₓ'. -/
 theorem hom_cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
     {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : e.cast (obj_eq_of_cons_eq_cons h) rfl = e' := by
   rw [hom.cast_eq_iff_heq]; exact hom_heq_of_cons_eq_cons h
 #align quiver.hom_cast_eq_of_cons_eq_cons Quiver.hom_cast_eq_of_cons_eq_cons
 
-/- warning: quiver.eq_nil_of_length_zero -> Quiver.eq_nil_of_length_zero is a dubious translation:
-lean 3 declaration is
-  forall {U : Type.{u2}} [_inst_1 : Quiver.{succ u1, u2} U] {u : U} {v : U} (p : Quiver.Path.{succ u1, u2} U _inst_1 u v) (hzero : Eq.{1} Nat (Quiver.Path.length.{u2, succ u1} U _inst_1 u v p) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u1, u2} U _inst_1 v v) (Quiver.Path.cast.{u1, u2} U _inst_1 u v v v (Quiver.Path.eq_of_length_zero.{u2, succ u1} U _inst_1 u v p hzero) (rfl.{succ u2} U v) p) (Quiver.Path.nil.{succ u1, u2} U _inst_1 v)
-but is expected to have type
-  forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (hzero : Eq.{1} Nat (Quiver.Path.length.{u1, succ u2} U _inst_1 u v p) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 v v) (Quiver.Path.cast.{u2, u1} U _inst_1 u v v v (Quiver.Path.eq_of_length_zero.{succ u2, u1} U _inst_1 u v p hzero) (rfl.{succ u1} U v) p) (Quiver.Path.nil.{succ u2, u1} U _inst_1 v)
-Case conversion may be inaccurate. Consider using '#align quiver.eq_nil_of_length_zero Quiver.eq_nil_of_length_zeroₓ'. -/
 theorem eq_nil_of_length_zero {u v : U} (p : Path u v) (hzero : p.length = 0) :
     p.cast (eq_of_length_zero p hzero) rfl = Path.nil := by
   cases p <;> simpa only [Nat.succ_ne_zero, length_cons] using hzero
Diff
@@ -49,10 +49,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) (cast.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Eq.mpr.{0} (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U u (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 _a v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) u' hu)) (Eq.mpr.{0} (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (id.{0} (Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.ndrec.{0, succ u1} U v (fun (_a : U) => Eq.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')) (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' _a) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) (Eq.refl.{1} Prop (Eq.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v) (Quiver.Hom.{succ u2, u1} U _inst_1 u' v'))) v' hv)) (Eq.refl.{succ (succ u2)} Type.{u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v')))) e)
 Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_eq_cast Quiver.Hom.cast_eq_castₓ'. -/
 theorem Hom.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
-    e.cast hu hv = cast (by rw [hu, hv]) e :=
-  by
-  subst_vars
-  rfl
+    e.cast hu hv = cast (by rw [hu, hv]) e := by subst_vars; rfl
 #align quiver.hom.cast_eq_cast Quiver.Hom.cast_eq_cast
 
 /- warning: quiver.hom.cast_rfl_rfl -> Quiver.Hom.cast_rfl_rfl is a dubious translation:
@@ -75,10 +72,7 @@ Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_cast Q
 @[simp]
 theorem Hom.cast_cast {u v u' v' u'' v'' : U} (e : u ⟶ v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
-    (e.cast hu hv).cast hu' hv' = e.cast (hu.trans hu') (hv.trans hv') :=
-  by
-  subst_vars
-  rfl
+    (e.cast hu hv).cast hu' hv' = e.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.hom.cast_cast Quiver.Hom.cast_cast
 
 /- warning: quiver.hom.cast_heq -> Quiver.Hom.cast_heq is a dubious translation:
@@ -88,9 +82,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v), HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e
 Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_heq Quiver.Hom.cast_heqₓ'. -/
 theorem Hom.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
-    HEq (e.cast hu hv) e := by
-  subst_vars
-  rfl
+    HEq (e.cast hu hv) e := by subst_vars; rfl
 #align quiver.hom.cast_heq Quiver.Hom.cast_heq
 
 /- warning: quiver.hom.cast_eq_iff_heq -> Quiver.Hom.cast_eq_iff_heq is a dubious translation:
@@ -100,9 +92,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v) (e' : Quiver.Hom.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e) e') (HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e')
 Case conversion may be inaccurate. Consider using '#align quiver.hom.cast_eq_iff_heq Quiver.Hom.cast_eq_iff_heqₓ'. -/
 theorem Hom.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
-    e.cast hu hv = e' ↔ HEq e e' := by
-  rw [hom.cast_eq_cast]
-  exact cast_eq_iff_heq
+    e.cast hu hv = e' ↔ HEq e e' := by rw [hom.cast_eq_cast]; exact cast_eq_iff_heq
 #align quiver.hom.cast_eq_iff_heq Quiver.Hom.cast_eq_iff_heq
 
 /- warning: quiver.hom.eq_cast_iff_heq -> Quiver.Hom.eq_cast_iff_heq is a dubious translation:
@@ -112,10 +102,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (e : Quiver.Hom.{succ u2, u1} U _inst_1 u v) (e' : Quiver.Hom.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e' (Quiver.Hom.cast.{u2, u1} U _inst_1 u v u' v' hu hv e)) (HEq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 u' v') e' (Quiver.Hom.{succ u2, u1} U _inst_1 u v) e)
 Case conversion may be inaccurate. Consider using '#align quiver.hom.eq_cast_iff_heq Quiver.Hom.eq_cast_iff_heqₓ'. -/
 theorem Hom.eq_cast_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) (e' : u' ⟶ v') :
-    e' = e.cast hu hv ↔ HEq e' e :=
-  by
-  rw [eq_comm, hom.cast_eq_iff_heq]
-  exact ⟨HEq.symm, HEq.symm⟩
+    e' = e.cast hu hv ↔ HEq e' e := by rw [eq_comm, hom.cast_eq_iff_heq]; exact ⟨HEq.symm, HEq.symm⟩
 #align quiver.hom.eq_cast_iff_heq Quiver.Hom.eq_cast_iff_heq
 
 /-!
@@ -163,10 +150,7 @@ Case conversion may be inaccurate. Consider using '#align quiver.path.cast_cast
 @[simp]
 theorem Path.cast_cast {u v u' v' u'' v'' : U} (p : Path u v) (hu : u = u') (hv : v = v')
     (hu' : u' = u'') (hv' : v' = v'') :
-    (p.cast hu hv).cast hu' hv' = p.cast (hu.trans hu') (hv.trans hv') :=
-  by
-  subst_vars
-  rfl
+    (p.cast hu hv).cast hu' hv' = p.cast (hu.trans hu') (hv.trans hv') := by subst_vars; rfl
 #align quiver.path.cast_cast Quiver.Path.cast_cast
 
 /- warning: quiver.path.cast_nil -> Quiver.Path.cast_nil is a dubious translation:
@@ -176,10 +160,8 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {u' : U} (hu : Eq.{succ u1} U u u'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' u') (Quiver.Path.cast.{u2, u1} U _inst_1 u u u' u' hu hu (Quiver.Path.nil.{succ u2, u1} U _inst_1 u)) (Quiver.Path.nil.{succ u2, u1} U _inst_1 u')
 Case conversion may be inaccurate. Consider using '#align quiver.path.cast_nil Quiver.Path.cast_nilₓ'. -/
 @[simp]
-theorem Path.cast_nil {u u' : U} (hu : u = u') : (Path.nil : Path u u).cast hu hu = Path.nil :=
-  by
-  subst_vars
-  rfl
+theorem Path.cast_nil {u u' : U} (hu : u = u') : (Path.nil : Path u u).cast hu hu = Path.nil := by
+  subst_vars; rfl
 #align quiver.path.cast_nil Quiver.Path.cast_nil
 
 /- warning: quiver.path.cast_heq -> Quiver.Path.cast_heq is a dubious translation:
@@ -189,9 +171,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v), HEq.{max (succ u1) (succ u2)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p) (Quiver.Path.{succ u2, u1} U _inst_1 u v) p
 Case conversion may be inaccurate. Consider using '#align quiver.path.cast_heq Quiver.Path.cast_heqₓ'. -/
 theorem Path.cast_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
-    HEq (p.cast hu hv) p := by
-  rw [path.cast_eq_cast]
-  exact cast_hEq _ _
+    HEq (p.cast hu hv) p := by rw [path.cast_eq_cast]; exact cast_hEq _ _
 #align quiver.path.cast_heq Quiver.Path.cast_heq
 
 /- warning: quiver.path.cast_eq_iff_heq -> Quiver.Path.cast_eq_iff_heq is a dubious translation:
@@ -201,9 +181,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {u' : U} {v' : U} (hu : Eq.{succ u1} U u u') (hv : Eq.{succ u1} U v v') (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (p' : Quiver.Path.{succ u2, u1} U _inst_1 u' v'), Iff (Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v' hu hv p) p') (HEq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v) p (Quiver.Path.{succ u2, u1} U _inst_1 u' v') p')
 Case conversion may be inaccurate. Consider using '#align quiver.path.cast_eq_iff_heq Quiver.Path.cast_eq_iff_heqₓ'. -/
 theorem Path.cast_eq_iff_heq {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v)
-    (p' : Path u' v') : p.cast hu hv = p' ↔ HEq p p' :=
-  by
-  rw [path.cast_eq_cast]
+    (p' : Path u' v') : p.cast hu hv = p' ↔ HEq p p' := by rw [path.cast_eq_cast];
   exact cast_eq_iff_heq
 #align quiver.path.cast_eq_iff_heq Quiver.Path.cast_eq_iff_heq
 
@@ -226,10 +204,7 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {w : U} {u' : U} {w' : U} (p : Quiver.Path.{succ u2, u1} U _inst_1 u v) (e : Quiver.Hom.{succ u2, u1} U _inst_1 v w) (hu : Eq.{succ u1} U u u') (hw : Eq.{succ u1} U w w'), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u' w') (Quiver.Path.cast.{u2, u1} U _inst_1 u w u' w' hu hw (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e)) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u' v w' (Quiver.Path.cast.{u2, u1} U _inst_1 u v u' v hu (rfl.{succ u1} U v) p) (Quiver.Hom.cast.{u2, u1} U _inst_1 v w v w' (rfl.{succ u1} U v) hw e))
 Case conversion may be inaccurate. Consider using '#align quiver.path.cast_cons Quiver.Path.cast_consₓ'. -/
 theorem Path.cast_cons {u v w u' w' : U} (p : Path u v) (e : v ⟶ w) (hu : u = u') (hw : w = w') :
-    (p.cons e).cast hu hw = (p.cast hu rfl).cons (e.cast rfl hw) :=
-  by
-  subst_vars
-  rfl
+    (p.cons e).cast hu hw = (p.cast hu rfl).cons (e.cast rfl hw) := by subst_vars; rfl
 #align quiver.path.cast_cons Quiver.Path.cast_cons
 
 /- warning: quiver.cast_eq_of_cons_eq_cons -> Quiver.cast_eq_of_cons_eq_cons is a dubious translation:
@@ -239,10 +214,8 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u2, u1} U _inst_1 u v} {p' : Quiver.Path.{succ u2, u1} U _inst_1 u v'} {e : Quiver.Hom.{succ u2, u1} U _inst_1 v w} {e' : Quiver.Hom.{succ u2, u1} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u w) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v' w p' e')), Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u v') (Quiver.Path.cast.{u2, u1} U _inst_1 u v u v' (rfl.{succ u1} U u) (Quiver.Path.obj_eq_of_cons_eq_cons.{succ u2, u1} U _inst_1 u v v' w p p' e e' h) p) p'
 Case conversion may be inaccurate. Consider using '#align quiver.cast_eq_of_cons_eq_cons Quiver.cast_eq_of_cons_eq_consₓ'. -/
 theorem cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
-    {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : p.cast rfl (obj_eq_of_cons_eq_cons h) = p' :=
-  by
-  rw [path.cast_eq_iff_heq]
-  exact heq_of_cons_eq_cons h
+    {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : p.cast rfl (obj_eq_of_cons_eq_cons h) = p' := by
+  rw [path.cast_eq_iff_heq]; exact heq_of_cons_eq_cons h
 #align quiver.cast_eq_of_cons_eq_cons Quiver.cast_eq_of_cons_eq_cons
 
 /- warning: quiver.hom_cast_eq_of_cons_eq_cons -> Quiver.hom_cast_eq_of_cons_eq_cons is a dubious translation:
@@ -252,10 +225,8 @@ but is expected to have type
   forall {U : Type.{u1}} [_inst_1 : Quiver.{succ u2, u1} U] {u : U} {v : U} {v' : U} {w : U} {p : Quiver.Path.{succ u2, u1} U _inst_1 u v} {p' : Quiver.Path.{succ u2, u1} U _inst_1 u v'} {e : Quiver.Hom.{succ u2, u1} U _inst_1 v w} {e' : Quiver.Hom.{succ u2, u1} U _inst_1 v' w} (h : Eq.{max (succ u2) (succ u1)} (Quiver.Path.{succ u2, u1} U _inst_1 u w) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v w p e) (Quiver.Path.cons.{succ u2, u1} U _inst_1 u v' w p' e')), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} U _inst_1 v' w) (Quiver.Hom.cast.{u2, u1} U _inst_1 v w v' w (Quiver.Path.obj_eq_of_cons_eq_cons.{succ u2, u1} U _inst_1 u v v' w p p' e e' h) (rfl.{succ u1} U w) e) e'
 Case conversion may be inaccurate. Consider using '#align quiver.hom_cast_eq_of_cons_eq_cons Quiver.hom_cast_eq_of_cons_eq_consₓ'. -/
 theorem hom_cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v'} {e : v ⟶ w}
-    {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : e.cast (obj_eq_of_cons_eq_cons h) rfl = e' :=
-  by
-  rw [hom.cast_eq_iff_heq]
-  exact hom_heq_of_cons_eq_cons h
+    {e' : v' ⟶ w} (h : p.cons e = p'.cons e') : e.cast (obj_eq_of_cons_eq_cons h) rfl = e' := by
+  rw [hom.cast_eq_iff_heq]; exact hom_heq_of_cons_eq_cons h
 #align quiver.hom_cast_eq_of_cons_eq_cons Quiver.hom_cast_eq_of_cons_eq_cons
 
 /- warning: quiver.eq_nil_of_length_zero -> Quiver.eq_nil_of_length_zero is a dubious translation:

Changes in mathlib4

mathlib3
mathlib4
chore: replace λ by fun (#11301)

Per the style guidelines, λ is disallowed in mathlib. This is close to exhaustive; I left some tactic code alone when it seemed to me that tactic could be upstreamed soon.

Notes

  • In lines I was modifying anyway, I also converted => to .
  • Also contains some mild in-passing indentation fixes in Mathlib/Order/SupClosed.
  • Some doc comments still contained Lean 3 syntax λ x, , which I also replaced.
Diff
@@ -32,7 +32,7 @@ namespace Quiver
 
 /-- Change the endpoints of an arrow using equalities. -/
 def Hom.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) : u' ⟶ v' :=
-  Eq.ndrec (motive := λ x => x ⟶ v') (Eq.ndrec e hv) hu
+  Eq.ndrec (motive := (· ⟶ v')) (Eq.ndrec e hv) hu
 #align quiver.hom.cast Quiver.Hom.cast
 
 theorem Hom.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (e : u ⟶ v) :
@@ -81,7 +81,7 @@ open Path
 
 /-- Change the endpoints of a path using equalities. -/
 def Path.cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) : Path u' v' :=
-  Eq.ndrec (motive := λ x => Path x v') (Eq.ndrec p hv) hu
+  Eq.ndrec (motive := (Path · v')) (Eq.ndrec p hv) hu
 #align quiver.path.cast Quiver.Path.cast
 
 theorem Path.cast_eq_cast {u v u' v' : U} (hu : u = u') (hv : v = v') (p : Path u v) :
chore: remove unused simps (#6632)

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

Diff
@@ -147,8 +147,9 @@ theorem hom_cast_eq_of_cons_eq_cons {u v v' w : U} {p : Path u v} {p' : Path u v
 
 theorem eq_nil_of_length_zero {u v : U} (p : Path u v) (hzero : p.length = 0) :
     p.cast (eq_of_length_zero p hzero) rfl = Path.nil := by
-  cases p <;> simp only [Nat.succ_ne_zero, length_cons] at hzero
-  rfl
+  cases p
+  · rfl
+  · simp only [Nat.succ_ne_zero, length_cons] at hzero
 #align quiver.eq_nil_of_length_zero Quiver.eq_nil_of_length_zero
 
 end Quiver
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -20,7 +20,7 @@ rewriting arrows and paths along equalities of their endpoints.
 
 universe v v₁ v₂ u u₁ u₂
 
-variable {U : Type _} [Quiver.{u + 1} U]
+variable {U : Type*} [Quiver.{u + 1} U]
 
 
 namespace Quiver
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,15 +2,12 @@
 Copyright (c) 2022 Antoine Labelle, Rémi Bottinelli. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle, Rémi Bottinelli
-
-! This file was ported from Lean 3 source module combinatorics.quiver.cast
-! leanprover-community/mathlib commit fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.Quiver.Basic
 import Mathlib.Combinatorics.Quiver.Path
 
+#align_import combinatorics.quiver.cast from "leanprover-community/mathlib"@"fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e"
+
 /-!
 
 # Rewriting arrows and paths along vertex equalities
chore: add source headers to ported theory files (#1094)

The script used to do this is included. The yaml file was obtained from https://raw.githubusercontent.com/wiki/leanprover-community/mathlib/mathlib4-port-status.md

Diff
@@ -2,6 +2,11 @@
 Copyright (c) 2022 Antoine Labelle, Rémi Bottinelli. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle, Rémi Bottinelli
+
+! This file was ported from Lean 3 source module combinatorics.quiver.cast
+! leanprover-community/mathlib commit fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e
+! Please do not edit these lines, except to modify the commit id
+! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.Quiver.Basic
 import Mathlib.Combinatorics.Quiver.Path

Dependencies 14

15 files ported (100.0%)
5222 lines ported (100.0%)

All dependencies are ported!