Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit f4ecb59

Browse files
committed
feat(data/sum/basic): add some missing lemmas (#18184)
Forward-ported to Mathlib 4 in leanprover-community/mathlib4#1583
1 parent 39afa0b commit f4ecb59

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/data/sum/basic.lean

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,18 @@ section get
8282

8383
variables {x y : α ⊕ β}
8484

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 :=
8686
by cases x; simp only [get_left, is_right, coe_sort_tt, coe_sort_ff, eq_self_iff_true]
8787

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 :=
8989
by cases x; simp only [get_right, is_left, coe_sort_tt, coe_sort_ff, eq_self_iff_true]
9090

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+
9197
@[simp] lemma bnot_is_left (x : α ⊕ β) : bnot x.is_left = x.is_right := by cases x; refl
9298
@[simp] lemma is_left_eq_ff : x.is_left = ff ↔ x.is_right := by cases x; simp
9399
lemma not_is_left : ¬x.is_left ↔ x.is_right := by simp
@@ -156,9 +162,13 @@ funext $ map_map f' g' f g
156162
@[simp] lemma map_id_id (α β) : sum.map (@id α) (@id β) = id :=
157163
funext $ λ x, sum.rec_on x (λ _, rfl) (λ _, rfl)
158164

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+
159169
lemma elim_comp_map {α β γ δ ε : Sort*} {f₁ : α → β} {f₂ : β → ε} {g₁ : γ → δ} {g₂ : δ → ε} :
160170
sum.elim f₂ g₂ ∘ sum.map f₁ g₁ = sum.elim (f₂ ∘ f₁) (g₂ ∘ g₁) :=
161-
by ext (_|_); refl
171+
funext $ λ _, elim_map
162172

163173
@[simp] lemma is_left_map (f : α → β) (g : γ → δ) (x : α ⊕ γ) :
164174
is_left (x.map f g) = is_left x :=

0 commit comments

Comments
 (0)