combinatorics.quiver.push
⟷
Mathlib.Combinatorics.Quiver.Push
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
Move
quiver.symmetrify
,quiver.has_reverse
,quiver.has_involutive_reverse
,quiver.reverse
,quiver.path.reverse
,quiver.symmetrify.of
,quiver.lift
,from combinatorics/quiver/connected_component.lean
to combinatorics/quiver/symmetrify.lean
.
Add
prefunctor.map_reverse
witnessing that a prefunctor maps reverses to reverses, and change the lemmas taking this property as an explicit argument.prefunctor.symmetrify
mapping a prefunctor to the prefunctor between symmetrifications,to combinatorics/quiver/symmetrify.lean
.
Move quiver.hom.to_pos
and quiver.hom.to_neg
from category_theory/groupoid/free_groupoid.lean
to combinatorics/quiver/symmetrify.lean
.
Add map_reverse
instance for functors between groupoids.
Co-authored-by: Rémi Bottinelli <bottine@users.noreply.github.com>
@@ -21,6 +21,8 @@ universes v v₁ v₂ u u₁ u₂
variables {V : Type*} [quiver V] {W : Type*} (σ : V → W)
+namespace quiver
+
/-- The `quiver` instance obtained by pushing arrows of `V` along the map `σ : V → W` -/
@[nolint unused_arguments]
def push (σ : V → W) := W
@@ -80,3 +82,5 @@ begin
end
end push
+
+end quiver
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Rémi Bottinelli. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémi Bottinelli
-/
-import Mathbin.Combinatorics.Quiver.Basic
+import Combinatorics.Quiver.Basic
#align_import combinatorics.quiver.push from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Rémi Bottinelli. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémi Bottinelli
-
-! This file was ported from Lean 3 source module combinatorics.quiver.push
-! 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
+#align_import combinatorics.quiver.push from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
+
/-!
# Pushing a quiver structure along a map
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -29,11 +29,13 @@ variable {V : Type _} [Quiver V] {W : Type _} (σ : V → W)
namespace Quiver
+#print Quiver.Push /-
/-- The `quiver` instance obtained by pushing arrows of `V` along the map `σ : V → W` -/
@[nolint unused_arguments]
def Push (σ : V → W) :=
W
#align quiver.push Quiver.Push
+-/
instance [h : Nonempty W] : Nonempty (Push σ) :=
h
@@ -59,15 +61,15 @@ def of : V ⥤q Push σ where
#align quiver.push.of Quiver.Push.of
-/
+#print Quiver.Push.of_obj /-
@[simp]
theorem of_obj : (of σ).obj = σ :=
rfl
#align quiver.push.of_obj Quiver.Push.of_obj
+-/
variable {W' : Type _} [Quiver W'] (φ : V ⥤q W') (τ : W → W') (h : ∀ x, φ.obj x = τ (σ x))
-include φ h
-
#print Quiver.Push.lift /-
/-- Given a function `τ : W → W'` and a prefunctor `φ : V ⥤q W'`, one can extend `τ` to be
a prefunctor `W ⥤q W'` if `τ` and `σ` factorize `φ` at the level of objects, where `W` is given
@@ -80,10 +82,13 @@ def lift : Push σ ⥤q W' where
#align quiver.push.lift Quiver.Push.lift
-/
+#print Quiver.Push.lift_obj /-
theorem lift_obj : (lift σ φ τ h).obj = τ :=
rfl
#align quiver.push.lift_obj Quiver.Push.lift_obj
+-/
+#print Quiver.Push.lift_comp /-
theorem lift_comp : of σ ⋙q lift σ φ τ h = φ :=
by
fapply Prefunctor.ext
@@ -95,7 +100,9 @@ theorem lift_comp : of σ ⋙q lift σ φ τ h = φ :=
iterate 2 apply (eq_rec_hEq _ _).trans
rfl
#align quiver.push.lift_comp Quiver.Push.lift_comp
+-/
+#print Quiver.Push.lift_unique /-
theorem lift_unique (Φ : Push σ ⥤q W') (Φ₀ : Φ.obj = τ) (Φcomp : of σ ⋙q Φ = φ) :
Φ = lift σ φ τ h := by
dsimp only [of, lift]
@@ -103,6 +110,7 @@ theorem lift_unique (Φ : Push σ ⥤q W') (Φ₀ : Φ.obj = τ) (Φcomp : of σ
· rintro; simp_rw [← Φ₀]
· rintro _ _ ⟨⟩; subst_vars; simp only [Prefunctor.comp_map, cast_eq]; rfl
#align quiver.push.lift_unique Quiver.Push.lift_unique
+-/
end Push
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -29,12 +29,6 @@ variable {V : Type _} [Quiver V] {W : Type _} (σ : V → W)
namespace Quiver
-/- warning: quiver.push -> Quiver.Push is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u_1}} [_inst_1 : Quiver.{u_2, u_1} V] {W : Type.{u_3}}, (V -> W) -> Type.{u_3}
-but is expected to have type
- forall {V : Type.{u_1}} {_inst_1 : Type.{u_2}}, (V -> _inst_1) -> Type.{u_2}
-Case conversion may be inaccurate. Consider using '#align quiver.push Quiver.Pushₓ'. -/
/-- The `quiver` instance obtained by pushing arrows of `V` along the map `σ : V → W` -/
@[nolint unused_arguments]
def Push (σ : V → W) :=
@@ -65,12 +59,6 @@ def of : V ⥤q Push σ where
#align quiver.push.of Quiver.Push.of
-/
-/- warning: quiver.push.of_obj -> Quiver.Push.of_obj is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} [_inst_1 : Quiver.{u2, u1} V] {W : Type.{u3}} (σ : V -> W), Eq.{max (succ u1) (succ u3)} (V -> (Quiver.Push.{u1, u2, u3} V _inst_1 W σ)) (Prefunctor.obj.{u2, succ (max u1 u3 u2), u1, u3} V _inst_1 (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.of.{u1, u2, u3} V _inst_1 W σ)) σ
-but is expected to have type
- forall {V : Type.{u3}} [_inst_1 : Quiver.{u1, u3} V] {W : Type.{u2}} (σ : V -> W), Eq.{max (succ u3) (succ u2)} (V -> (Quiver.Push.{u3, u2} V W σ)) (Prefunctor.obj.{u1, max (max (succ u3) (succ u1)) (succ u2), u3, u2} V _inst_1 (Quiver.Push.{u3, u2} V W σ) (Quiver.instQuiverPush.{u3, u1, u2} V _inst_1 W σ) (Quiver.Push.of.{u3, u1, u2} V _inst_1 W σ)) σ
-Case conversion may be inaccurate. Consider using '#align quiver.push.of_obj Quiver.Push.of_objₓ'. -/
@[simp]
theorem of_obj : (of σ).obj = σ :=
rfl
@@ -92,22 +80,10 @@ def lift : Push σ ⥤q W' where
#align quiver.push.lift Quiver.Push.lift
-/
-/- warning: quiver.push.lift_obj -> Quiver.Push.lift_obj is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} [_inst_1 : Quiver.{u2, u1} V] {W : Type.{u3}} (σ : V -> W) {W' : Type.{u4}} [_inst_2 : Quiver.{u5, u4} W'] (φ : Prefunctor.{u2, u5, u1, u4} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u4} W' (Prefunctor.obj.{u2, u5, u1, u4} V _inst_1 W' _inst_2 φ x) (τ (σ x))), Eq.{max (succ u3) (succ u4)} ((Quiver.Push.{u1, u2, u3} V _inst_1 W σ) -> W') (Prefunctor.obj.{succ (max u1 u3 u2), u5, u3, u4} (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2 (Quiver.Push.lift.{u1, u2, u3, u4, u5} V _inst_1 W σ W' _inst_2 φ τ h)) τ
-but is expected to have type
- forall {V : Type.{u3}} [_inst_1 : Quiver.{u2, u3} V] {W : Type.{u5}} (σ : V -> W) {W' : Type.{u4}} [_inst_2 : Quiver.{u1, u4} W'] (φ : Prefunctor.{u2, u1, u3, u4} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u4} W' (Prefunctor.obj.{u2, u1, u3, u4} V _inst_1 W' _inst_2 φ x) (τ (σ x))), Eq.{max (succ u5) (succ u4)} ((Quiver.Push.{u3, u5} V W σ) -> W') (Prefunctor.obj.{max (max (succ u3) (succ u2)) (succ u5), u1, u5, u4} (Quiver.Push.{u3, u5} V W σ) (Quiver.instQuiverPush.{u3, u2, u5} V _inst_1 W σ) W' _inst_2 (Quiver.Push.lift.{u3, u2, u5, u4, u1} V _inst_1 W σ W' _inst_2 φ τ h)) τ
-Case conversion may be inaccurate. Consider using '#align quiver.push.lift_obj Quiver.Push.lift_objₓ'. -/
theorem lift_obj : (lift σ φ τ h).obj = τ :=
rfl
#align quiver.push.lift_obj Quiver.Push.lift_obj
-/- warning: quiver.push.lift_comp -> Quiver.Push.lift_comp is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} [_inst_1 : Quiver.{u2, u1} V] {W : Type.{u3}} (σ : V -> W) {W' : Type.{u4}} [_inst_2 : Quiver.{u5, u4} W'] (φ : Prefunctor.{u2, u5, u1, u4} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u4} W' (Prefunctor.obj.{u2, u5, u1, u4} V _inst_1 W' _inst_2 φ x) (τ (σ x))), Eq.{max (imax (succ u1) (succ u1) u2 u5) (succ u1) (succ u4)} (Prefunctor.{u2, u5, u1, u4} V _inst_1 W' _inst_2) (Prefunctor.comp.{u1, u2, u3, succ (max u1 u3 u2), u4, u5} V _inst_1 (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2 (Quiver.Push.of.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.lift.{u1, u2, u3, u4, u5} V _inst_1 W σ W' _inst_2 φ τ h)) φ
-but is expected to have type
- forall {V : Type.{u5}} [_inst_1 : Quiver.{u4, u5} V] {W : Type.{u1}} (σ : V -> W) {W' : Type.{u3}} [_inst_2 : Quiver.{u2, u3} W'] (φ : Prefunctor.{u4, u2, u5, u3} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u3} W' (Prefunctor.obj.{u4, u2, u5, u3} V _inst_1 W' _inst_2 φ x) (τ (σ x))), Eq.{max (max (max (succ u5) u4) (succ u3)) u2} (Prefunctor.{u4, u2, u5, u3} V _inst_1 W' _inst_2) (Prefunctor.comp.{u5, u4, u1, max (max (succ u5) (succ u4)) (succ u1), u3, u2} V _inst_1 (Quiver.Push.{u5, u1} V W σ) (Quiver.instQuiverPush.{u5, u4, u1} V _inst_1 W σ) W' _inst_2 (Quiver.Push.of.{u5, u4, u1} V _inst_1 W σ) (Quiver.Push.lift.{u5, u4, u1, u3, u2} V _inst_1 W σ W' _inst_2 φ τ h)) φ
-Case conversion may be inaccurate. Consider using '#align quiver.push.lift_comp Quiver.Push.lift_compₓ'. -/
theorem lift_comp : of σ ⋙q lift σ φ τ h = φ :=
by
fapply Prefunctor.ext
@@ -120,12 +96,6 @@ theorem lift_comp : of σ ⋙q lift σ φ τ h = φ :=
rfl
#align quiver.push.lift_comp Quiver.Push.lift_comp
-/- warning: quiver.push.lift_unique -> Quiver.Push.lift_unique is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} [_inst_1 : Quiver.{u2, u1} V] {W : Type.{u3}} (σ : V -> W) {W' : Type.{u4}} [_inst_2 : Quiver.{u5, u4} W'] (φ : Prefunctor.{u2, u5, u1, u4} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u4} W' (Prefunctor.obj.{u2, u5, u1, u4} V _inst_1 W' _inst_2 φ x) (τ (σ x))) (Φ : Prefunctor.{succ (max u1 u3 u2), u5, u3, u4} (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2), (Eq.{max (succ u3) (succ u4)} ((Quiver.Push.{u1, u2, u3} V _inst_1 W σ) -> W') (Prefunctor.obj.{succ (max u1 u3 u2), u5, u3, u4} (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2 Φ) τ) -> (Eq.{max (imax (succ u1) (succ u1) u2 u5) (succ u1) (succ u4)} (Prefunctor.{u2, u5, u1, u4} V _inst_1 W' _inst_2) (Prefunctor.comp.{u1, u2, u3, succ (max u1 u3 u2), u4, u5} V _inst_1 (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2 (Quiver.Push.of.{u1, u2, u3} V _inst_1 W σ) Φ) φ) -> (Eq.{max (imax (succ u3) (succ u3) (succ (max u1 u3 u2)) u5) (succ u3) (succ u4)} (Prefunctor.{succ (max u1 u3 u2), u5, u3, u4} (Quiver.Push.{u1, u2, u3} V _inst_1 W σ) (Quiver.Push.quiver.{u1, u2, u3} V _inst_1 W σ) W' _inst_2) Φ (Quiver.Push.lift.{u1, u2, u3, u4, u5} V _inst_1 W σ W' _inst_2 φ τ h))
-but is expected to have type
- forall {V : Type.{u5}} [_inst_1 : Quiver.{u4, u5} V] {W : Type.{u3}} (σ : V -> W) {W' : Type.{u1}} [_inst_2 : Quiver.{u2, u1} W'] (φ : Prefunctor.{u4, u2, u5, u1} V _inst_1 W' _inst_2) (τ : W -> W') (h : forall (x : V), Eq.{succ u1} W' (Prefunctor.obj.{u4, u2, u5, u1} V _inst_1 W' _inst_2 φ x) (τ (σ x))) (Φ : Prefunctor.{max (max (succ u5) (succ u4)) (succ u3), u2, u3, u1} (Quiver.Push.{u5, u3} V W σ) (Quiver.instQuiverPush.{u5, u4, u3} V _inst_1 W σ) W' _inst_2), (Eq.{max (succ u3) (succ u1)} ((Quiver.Push.{u5, u3} V W σ) -> W') (Prefunctor.obj.{max (max (succ u5) (succ u4)) (succ u3), u2, u3, u1} (Quiver.Push.{u5, u3} V W σ) (Quiver.instQuiverPush.{u5, u4, u3} V _inst_1 W σ) W' _inst_2 Φ) τ) -> (Eq.{max (max (max (succ u5) u4) (succ u1)) u2} (Prefunctor.{u4, u2, u5, u1} V _inst_1 W' _inst_2) (Prefunctor.comp.{u5, u4, u3, max (max (succ u5) (succ u4)) (succ u3), u1, u2} V _inst_1 (Quiver.Push.{u5, u3} V W σ) (Quiver.instQuiverPush.{u5, u4, u3} V _inst_1 W σ) W' _inst_2 (Quiver.Push.of.{u5, u4, u3} V _inst_1 W σ) Φ) φ) -> (Eq.{max (max (max (max (succ u5) (succ u4)) (succ u3)) (succ u1)) u2} (Prefunctor.{max (max (succ u5) (succ u4)) (succ u3), u2, u3, u1} (Quiver.Push.{u5, u3} V W σ) (Quiver.instQuiverPush.{u5, u4, u3} V _inst_1 W σ) W' _inst_2) Φ (Quiver.Push.lift.{u5, u4, u3, u1, u2} V _inst_1 W σ W' _inst_2 φ τ h))
-Case conversion may be inaccurate. Consider using '#align quiver.push.lift_unique Quiver.Push.lift_uniqueₓ'. -/
theorem lift_unique (Φ : Push σ ⥤q W') (Φ₀ : Φ.obj = τ) (Φcomp : of σ ⋙q Φ = φ) :
Φ = lift σ φ τ h := by
dsimp only [of, lift]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -87,9 +87,7 @@ the pushforward quiver structure `push σ`. -/
def lift : Push σ ⥤q W' where
obj := τ
map :=
- @PushQuiver.rec V _ W σ (fun X Y f => τ X ⟶ τ Y) fun X Y f =>
- by
- rw [← h X, ← h Y]
+ @PushQuiver.rec V _ W σ (fun X Y f => τ X ⟶ τ Y) fun X Y f => by rw [← h X, ← h Y];
exact φ.map f
#align quiver.push.lift Quiver.Push.lift
-/
@@ -113,12 +111,8 @@ Case conversion may be inaccurate. Consider using '#align quiver.push.lift_comp
theorem lift_comp : of σ ⋙q lift σ φ τ h = φ :=
by
fapply Prefunctor.ext
- · rintro
- simp only [Prefunctor.comp_obj]
- symm
- exact h X
- · rintro _ _ f
- simp only [Prefunctor.comp_map]
+ · rintro; simp only [Prefunctor.comp_obj]; symm; exact h X
+ · rintro _ _ f; simp only [Prefunctor.comp_map]
apply eq_of_hEq
iterate 2 apply (cast_hEq _ _).trans
symm
@@ -136,12 +130,8 @@ theorem lift_unique (Φ : Push σ ⥤q W') (Φ₀ : Φ.obj = τ) (Φcomp : of σ
Φ = lift σ φ τ h := by
dsimp only [of, lift]
fapply Prefunctor.ext
- · rintro
- simp_rw [← Φ₀]
- · rintro _ _ ⟨⟩
- subst_vars
- simp only [Prefunctor.comp_map, cast_eq]
- rfl
+ · rintro; simp_rw [← Φ₀]
+ · rintro _ _ ⟨⟩; subst_vars; simp only [Prefunctor.comp_map, cast_eq]; rfl
#align quiver.push.lift_unique Quiver.Push.lift_unique
end Push
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -20,7 +20,7 @@ namespace Quiver
universe v v₁ v₂ u u₁ u₂
-variable {V : Type _} [Quiver V] {W : Type _} (σ : V → W)
+variable {V : Type*} [Quiver V] {W : Type*} (σ : V → W)
/-- The `Quiver` instance obtained by pushing arrows of `V` along the map `σ : V → W` -/
@[nolint unusedArguments]
@@ -52,7 +52,7 @@ theorem of_obj : (of σ).obj = σ :=
rfl
#align quiver.push.of_obj Quiver.Push.of_obj
-variable {W' : Type _} [Quiver W'] (φ : V ⥤q W') (τ : W → W') (h : ∀ x, φ.obj x = τ (σ x))
+variable {W' : Type*} [Quiver W'] (φ : V ⥤q W') (τ : W → W') (h : ∀ x, φ.obj x = τ (σ x))
/-- Given a function `τ : W → W'` and a prefunctor `φ : V ⥤q W'`, one can extend `τ` to be
a prefunctor `W ⥤q W'` if `τ` and `σ` factorize `φ` at the level of objects, where `W` is given
@@ -2,14 +2,11 @@
Copyright (c) 2022 Rémi Bottinelli. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémi Bottinelli
-
-! This file was ported from Lean 3 source module combinatorics.quiver.push
-! leanprover-community/mathlib commit 2258b40dacd2942571c8ce136215350c702dc78f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Combinatorics.Quiver.Basic
+#align_import combinatorics.quiver.push from "leanprover-community/mathlib"@"2258b40dacd2942571c8ce136215350c702dc78f"
+
/-!
# Pushing a quiver structure along a map
fix-comments.py
on all files.@@ -14,7 +14,7 @@ import Mathlib.Combinatorics.Quiver.Basic
# Pushing a quiver structure along a map
-Given a map `σ : V → W` and a `Quiver` instance on `V`, this files defines a `quiver` instance
+Given a map `σ : V → W` and a `Quiver` instance on `V`, this files defines a `Quiver` instance
on `W` by associating to each arrow `v ⟶ v'` in `V` an arrow `σ v ⟶ σ v'` in `W`.
-/
These files correspond to files flagged "The following files have been modified since the commit at which they were verified." by port_status.py
but are in sync with mathlib3, so we can update the hash.
I only updated the easy ones, the others need a closer inspection.
Co-authored-by: Reid Barton <rwbarton@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémi Bottinelli
! This file was ported from Lean 3 source module combinatorics.quiver.push
-! leanprover-community/mathlib commit 9b2660e1b25419042c8da10bf411aa3c67f14383
+! leanprover-community/mathlib commit 2258b40dacd2942571c8ce136215350c702dc78f
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
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
@@ -2,6 +2,11 @@
Copyright (c) 2022 Rémi Bottinelli. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémi Bottinelli
+
+! This file was ported from Lean 3 source module combinatorics.quiver.push
+! leanprover-community/mathlib commit 9b2660e1b25419042c8da10bf411aa3c67f14383
+! Please do not edit these lines, except to modify the commit id
+! if you have ported upstream changes.
-/
import Mathlib.Combinatorics.Quiver.Basic
All dependencies are ported!