@@ -61,17 +61,16 @@ instance opposite {V} [Quiver V] : Quiver Vᵒᵖ :=
6161 ⟨fun a b => (unop b ⟶ unop a)ᵒᵖ⟩
6262
6363/-- The opposite of an arrow in `V`. -/
64- @[to_dual self (reorder := 3 4) ]
64+ @[to_dual self]
6565def Hom.op {V} [Quiver V] {X Y : V} (f : X ⟶ Y) : op Y ⟶ op X := ⟨f⟩
6666
6767/-- Given an arrow in `Vᵒᵖ`, we can take the "unopposite" back in `V`. -/
68- @[to_dual self (reorder := 3 4) ]
68+ @[to_dual self]
6969def Hom.unop {V} [Quiver V] {X Y : Vᵒᵖ} (f : X ⟶ Y) : unop Y ⟶ unop X := Opposite.unop f
7070
7171/-- The bijection `(X ⟶ Y) ≃ (op Y ⟶ op X)`. -/
72- @[simps, to_dual self (reorder := 3 4)]
73- def Hom.opEquiv {V} [Quiver V] {X Y : V} :
74- (X ⟶ Y) ≃ (Opposite.op Y ⟶ Opposite.op X) where
72+ @[simps, to_dual self]
73+ def Hom.opEquiv {V} [Quiver V] {X Y : V} : (X ⟶ Y) ≃ (Opposite.op Y ⟶ Opposite.op X) where
7574 toFun := Opposite.op
7675 invFun := Opposite.unop
7776
@@ -80,7 +79,7 @@ def Empty (V : Type u) : Type u := V
8079
8180instance emptyQuiver (V : Type u) : Quiver.{u} (Empty V) := ⟨fun _ _ => PEmpty⟩
8281
83- @[simp, to_dual self (reorder := 2 3) ]
82+ @[simp, to_dual self]
8483theorem empty_arrow {V : Type u} (a b : Empty V) : (a ⟶ b) = PEmpty := rfl
8584
8685/-- A quiver is thin if it has no parallel arrows. -/
@@ -95,54 +94,54 @@ variable {V : Type*} [Quiver V] {X Y X' Y' : V}
9594
9695/-- An arrow in a quiver can be transported across equalities between the source and target
9796objects. -/
98- @[to_dual self (reorder := 3 4, 5 6, 8 9 )]
97+ @[to_dual self (reorder := X Y, X' Y', hX hY )]
9998def homOfEq (f : X ⟶ Y) (hX : X = X') (hY : Y = Y') : X' ⟶ Y' := by
10099 subst hX hY
101100 exact f
102101
103- @[simp, to_dual self (reorder := 3 4, 5 6, 8 9, 10 11, 12 13) ]
102+ @[simp, to_dual self]
104103lemma homOfEq_trans (f : X ⟶ Y) (hX : X = X') (hY : Y = Y')
105104 {X'' Y'' : V} (hX' : X' = X'') (hY' : Y' = Y'') :
106105 homOfEq (homOfEq f hX hY) hX' hY' = homOfEq f (hX.trans hX') (hY.trans hY') := by
107106 subst hX hY hX' hY'
108107 rfl
109108
110- @[to_dual self (reorder := 3 4, 5 6, 7 8) ]
109+ @[to_dual self]
111110lemma homOfEq_injective (hX : X = X') (hY : Y = Y')
112111 {f g : X ⟶ Y} (h : Quiver.homOfEq f hX hY = Quiver.homOfEq g hX hY) : f = g := by
113112 subst hX hY
114113 exact h
115114
116- @[simp, to_dual self (reorder := 3 4) ]
115+ @[simp, to_dual self]
117116lemma homOfEq_rfl (f : X ⟶ Y) : Quiver.homOfEq f rfl rfl = f := rfl
118117
119- @[to_dual self (reorder := 3 4, 5 6, 7 8) ]
118+ @[to_dual self]
120119lemma heq_of_homOfEq_ext (hX : X = X') (hY : Y = Y') {f : X ⟶ Y} {f' : X' ⟶ Y'}
121120 (e : Quiver.homOfEq f hX hY = f') : f ≍ f' := by
122121 subst hX hY
123122 rw [Quiver.homOfEq_rfl] at e
124123 rw [e]
125124
126- @[to_dual self (reorder := 3 4, 5 6, 9 10) ]
125+ @[to_dual self]
127126lemma homOfEq_eq_iff (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X = X') (hY : Y = Y') :
128127 Quiver.homOfEq f hX hY = g ↔ f = Quiver.homOfEq g hX.symm hY.symm := by
129128 subst hX hY; simp
130129
131- @[to_dual self (reorder := 3 4, 5 6, 9 10) ]
130+ @[to_dual self]
132131lemma eq_homOfEq_iff (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X' = X) (hY : Y' = Y) :
133132 f = Quiver.homOfEq g hX hY ↔ Quiver.homOfEq f hX.symm hY.symm = g := by
134133 subst hX hY; simp
135134
136- @[to_dual self (reorder := 3 4, 5 6, 7 8) ]
135+ @[to_dual self]
137136lemma homOfEq_heq (hX : X = X') (hY : Y = Y') (f : X ⟶ Y) : homOfEq f hX hY ≍ f :=
138137 (heq_of_homOfEq_ext hX hY rfl).symm
139138
140- @[to_dual self (reorder := 3 4, 5 6, 9 10) ]
139+ @[to_dual self]
141140lemma homOfEq_heq_left_iff (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X = X') (hY : Y = Y') :
142141 homOfEq f hX hY ≍ g ↔ f ≍ g := by
143142 cases hX; cases hY; rfl
144143
145- @[to_dual self (reorder := 3 4, 5 6, 9 10) ]
144+ @[to_dual self]
146145lemma homOfEq_heq_right_iff (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X' = X) (hY : Y' = Y) :
147146 f ≍ homOfEq g hX hY ↔ f ≍ g := by
148147 cases hX; cases hY; rfl
0 commit comments