@@ -82,12 +82,18 @@ section get
82
82
83
83
variables {x y : α ⊕ β}
84
84
85
- lemma get_left_eq_none_iff : x.get_left = none ↔ x.is_right :=
85
+ @[simp] lemma get_left_eq_none_iff : x.get_left = none ↔ x.is_right :=
86
86
by cases x; simp only [get_left, is_right, coe_sort_tt, coe_sort_ff, eq_self_iff_true]
87
87
88
- lemma get_right_eq_none_iff : x.get_right = none ↔ x.is_left :=
88
+ @[simp] lemma get_right_eq_none_iff : x.get_right = none ↔ x.is_left :=
89
89
by cases x; simp only [get_right, is_left, coe_sort_tt, coe_sort_ff, eq_self_iff_true]
90
90
91
+ @[simp] lemma get_left_eq_some_iff {a} : x.get_left = some a ↔ x = inl a :=
92
+ by cases x; simp only [get_left]
93
+
94
+ @[simp] lemma get_right_eq_some_iff {b} : x.get_right = some b ↔ x = inr b :=
95
+ by cases x; simp only [get_right]
96
+
91
97
@[simp] lemma bnot_is_left (x : α ⊕ β) : bnot x.is_left = x.is_right := by cases x; refl
92
98
@[simp] lemma is_left_eq_ff : x.is_left = ff ↔ x.is_right := by cases x; simp
93
99
lemma not_is_left : ¬x.is_left ↔ x.is_right := by simp
@@ -156,9 +162,13 @@ funext $ map_map f' g' f g
156
162
@[simp] lemma map_id_id (α β) : sum.map (@id α) (@id β) = id :=
157
163
funext $ λ x, sum.rec_on x (λ _, rfl) (λ _, rfl)
158
164
165
+ lemma elim_map {α β γ δ ε : Sort *} {f₁ : α → β} {f₂ : β → ε} {g₁ : γ → δ} {g₂ : δ → ε} {x} :
166
+ sum.elim f₂ g₂ (sum.map f₁ g₁ x) = sum.elim (f₂ ∘ f₁) (g₂ ∘ g₁) x :=
167
+ by cases x; refl
168
+
159
169
lemma elim_comp_map {α β γ δ ε : Sort *} {f₁ : α → β} {f₂ : β → ε} {g₁ : γ → δ} {g₂ : δ → ε} :
160
170
sum.elim f₂ g₂ ∘ sum.map f₁ g₁ = sum.elim (f₂ ∘ f₁) (g₂ ∘ g₁) :=
161
- by ext (_|_); refl
171
+ funext $ λ _, elim_map
162
172
163
173
@[simp] lemma is_left_map (f : α → β) (g : γ → δ) (x : α ⊕ γ) :
164
174
is_left (x.map f g) = is_left x :=
0 commit comments