Skip to content

Commit f10be95

Browse files
committed
chore(Mathlib/Order/BooleanAlgebra/Basic): golf rewrites
1 parent 79dd0a8 commit f10be95

1 file changed

Lines changed: 31 additions & 62 deletions

File tree

Mathlib/Order/BooleanAlgebra/Basic.lean

Lines changed: 31 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,11 @@ private theorem sdiff_sup_self' : y \ x ⊔ x = y ⊔ x :=
9393
theorem sdiff_inf_sdiff : x \ y ⊓ y \ x = ⊥ :=
9494
Eq.symm <|
9595
calc
96-
⊥ = x ⊓ y ⊓ x \ y := by rw [inf_inf_sdiff]
97-
_ = x ⊓ (y ⊓ x ⊔ y \ x) ⊓ x \ y := by rw [sup_inf_sdiff]
96+
⊥ = x ⊓ (y ⊓ x ⊔ y \ x) ⊓ x \ y := by rw [← inf_inf_sdiff, sup_inf_sdiff]
9897
_ = (x ⊓ (y ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y := by rw [inf_sup_left]
9998
_ = (y ⊓ (x ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y := by ac_rfl
100-
_ = (y ⊓ x ⊔ x ⊓ y \ x) ⊓ x \ y := by rw [inf_idem]
101-
_ = x ⊓ y ⊓ x \ y ⊔ x ⊓ y \ x ⊓ x \ y := by rw [inf_sup_right, inf_comm x y]
102-
_ = x ⊓ y \ x ⊓ x \ y := by rw [inf_inf_sdiff, bot_sup_eq]
99+
_ = x ⊓ y \ x ⊓ x \ y := by
100+
rw [inf_idem, inf_sup_right, ← inf_comm x y, inf_inf_sdiff, bot_sup_eq]
103101
_ = x ⊓ x \ y ⊓ y \ x := by ac_rfl
104102
_ = x \ y ⊓ y \ x := by rw [inf_of_le_right sdiff_le']
105103

@@ -110,8 +108,7 @@ theorem disjoint_sdiff_sdiff : Disjoint (x \ y) (y \ x) :=
110108
theorem inf_sdiff_self_right : x ⊓ y \ x = ⊥ :=
111109
calc
112110
x ⊓ y \ x = (x ⊓ y ⊔ x \ y) ⊓ y \ x := by rw [sup_inf_sdiff]
113-
_ = x ⊓ y ⊓ y \ x ⊔ x \ y ⊓ y \ x := by rw [inf_sup_right]
114-
_ = ⊥ := by rw [inf_comm x y, inf_inf_sdiff, sdiff_inf_sdiff, bot_sup_eq]
111+
_ = ⊥ := by rw [inf_sup_right, inf_comm x y, inf_inf_sdiff, sdiff_inf_sdiff, bot_sup_eq]
115112

116113
@[simp]
117114
theorem inf_sdiff_self_left : y \ x ⊓ x = ⊥ := by rw [inf_comm, inf_sdiff_self_right]
@@ -126,25 +123,16 @@ instance (priority := 100) GeneralizedBooleanAlgebra.toGeneralizedCoheytingAlgeb
126123
fun h =>
127124
le_of_inf_le_sup_le
128125
(le_of_eq
129-
(calc
130-
y ⊓ y \ x = y \ x := inf_of_le_right sdiff_le'
131-
_ = x ⊓ y \ x ⊔ z ⊓ y \ x := by
132-
rw [inf_eq_right.2 h, inf_sdiff_self_right, bot_sup_eq]
133-
_ = (x ⊔ z) ⊓ y \ x := by rw [← inf_sup_right]))
126+
(by grind [sdiff_le', inf_of_le_right, inf_eq_right, inf_sdiff_self_right, bot_sup_eq,
127+
inf_sup_right]))
134128
(calc
135-
y ⊔ y \ x = y := sup_of_le_left sdiff_le'
136-
_ ≤ y ⊔ (x ⊔ z) := le_sup_left
137-
_ = y \ x ⊔ x ⊔ z := by rw [← sup_assoc, ← @sdiff_sup_self' _ x y]
129+
y ⊔ y \ x ≤ y \ x ⊔ x ⊔ z := by
130+
grind [sup_of_le_left, sdiff_le', le_sup_left, sup_assoc, sdiff_sup_self']
138131
_ = x ⊔ z ⊔ y \ x := by ac_rfl),
139-
fun h =>
140-
le_of_inf_le_sup_le
141-
(calc
142-
y \ x ⊓ x = ⊥ := inf_sdiff_self_left
143-
_ ≤ z ⊓ x := bot_le)
144-
(calc
145-
y \ x ⊔ x = y ⊔ x := sdiff_sup_self'
146-
_ ≤ x ⊔ z ⊔ x := sup_le_sup_right h x
147-
_ ≤ z ⊔ x := by rw [sup_assoc, sup_comm, sup_assoc, sup_idem])⟩
132+
fun h => le_of_inf_le_sup_le (inf_sdiff_self_left.trans_le bot_le) (calc
133+
y \ x ⊔ x = y ⊔ x := sdiff_sup_self'
134+
_ ≤ x ⊔ z ⊔ x := sup_le_sup_right h x
135+
_ ≤ z ⊔ x := by rw [sup_assoc, sup_comm, sup_assoc, sup_idem])⟩
148136

149137
theorem disjoint_sdiff_self_left : Disjoint (y \ x) x :=
150138
disjoint_iff_inf_le.mpr inf_sdiff_self_left.le
@@ -212,16 +200,15 @@ theorem le_iff_eq_sup_sdiff (hz : z ≤ y) (hx : x ≤ y) : x ≤ z ↔ y = z
212200
theorem sdiff_sup : y \ (x ⊔ z) = y \ x ⊓ y \ z :=
213201
sdiff_unique
214202
(calc
215-
y ⊓ (x ⊔ z) ⊔ y \ x ⊓ y \ z = (y ⊓ (x ⊔ z) ⊔ y \ x) ⊓ (y ⊓ (x ⊔ z) ⊔ y \ z) := by
216-
rw [sup_inf_left]
217-
_ = (y ⊓ x ⊔ y ⊓ z ⊔ y \ x) ⊓ (y ⊓ x ⊔ y ⊓ z ⊔ y \ z) := by rw [@inf_sup_left _ _ y]
203+
y ⊓ (x ⊔ z) ⊔ y \ x ⊓ y \ z = (y ⊓ x ⊔ y ⊓ z ⊔ y \ x) ⊓ (y ⊓ x ⊔ y ⊓ z ⊔ y \ z) := by
204+
rw [sup_inf_left, inf_sup_left y]
218205
_ = (y ⊓ z ⊔ (y ⊓ x ⊔ y \ x)) ⊓ (y ⊓ x ⊔ (y ⊓ z ⊔ y \ z)) := by ac_rfl
219206
_ = (y ⊓ z ⊔ y) ⊓ (y ⊓ x ⊔ y) := by rw [sup_inf_sdiff, sup_inf_sdiff]
220207
_ = (y ⊔ y ⊓ z) ⊓ (y ⊔ y ⊓ x) := by ac_rfl
221208
_ = y := by rw [sup_inf_self, sup_inf_self, inf_idem])
222209
(calc
223-
y ⊓ (x ⊔ z) ⊓ (y \ x ⊓ y \ z) = (y ⊓ x ⊔ y ⊓ z) (y \ x ⊓ y \ z) := by rw [inf_sup_left]
224-
_ = y ⊓ x ⊓ (y \ x ⊓ y \ z) ⊔ y ⊓ z ⊓ (y \ x ⊓ y \ z) := by rw [inf_sup_right]
210+
y ⊓ (x ⊔ z) ⊓ (y \ x ⊓ y \ z) = y ⊓ x ⊓ (y \ x ⊓ y \ z) ⊔ y ⊓ z ⊓ (y \ x ⊓ y \ z) := by
211+
rw [inf_sup_left, inf_sup_right]
225212
_ = y ⊓ x ⊓ y \ x ⊓ y \ z ⊔ y \ x ⊓ (y \ z ⊓ (y ⊓ z)) := by ac_rfl
226213
_ = ⊥ := by rw [inf_inf_sdiff, bot_inf_eq, bot_sup_eq, inf_comm (y \ z),
227214
inf_inf_sdiff, inf_bot_eq])
@@ -256,11 +243,8 @@ theorem sdiff_lt_sdiff_right (h : x < y) (hz : z ≤ x) : x \ z < y \ z :=
256243
(sdiff_le_sdiff_right h.le).lt_of_not_ge
257244
fun h' => h.not_ge <| le_sdiff_sup.trans <| sup_le_of_le_sdiff_right h' hz
258245

259-
theorem sup_inf_inf_sdiff : x ⊓ y ⊓ z ⊔ y \ z = x ⊓ y ⊔ y \ z :=
260-
calc
261-
x ⊓ y ⊓ z ⊔ y \ z = x ⊓ (y ⊓ z) ⊔ y \ z := by rw [inf_assoc]
262-
_ = (x ⊔ y \ z) ⊓ y := by rw [sup_inf_right, sup_inf_sdiff]
263-
_ = x ⊓ y ⊔ y \ z := by rw [inf_sup_right, inf_sdiff_left]
246+
theorem sup_inf_inf_sdiff : x ⊓ y ⊓ z ⊔ y \ z = x ⊓ y ⊔ y \ z := by
247+
rw [inf_assoc, sup_inf_right, sup_inf_sdiff, inf_sup_right, inf_sdiff_left]
264248

265249
theorem sdiff_sdiff_right : x \ (y \ z) = x \ y ⊔ x ⊓ y ⊓ z := by
266250
rw [sup_comm, inf_comm, ← inf_assoc, sup_inf_inf_sdiff]
@@ -269,14 +253,11 @@ theorem sdiff_sdiff_right : x \ (y \ z) = x \ y ⊔ x ⊓ y ⊓ z := by
269253
x ⊓ y \ z ⊔ (z ⊓ x ⊔ x \ y) = (x ⊔ (z ⊓ x ⊔ x \ y)) ⊓ (y \ z ⊔ (z ⊓ x ⊔ x \ y)) := by
270254
rw [sup_inf_right]
271255
_ = (x ⊔ x ⊓ z ⊔ x \ y) ⊓ (y \ z ⊔ (x ⊓ z ⊔ x \ y)) := by ac_rfl
272-
_ = x ⊓ (y \ z ⊔ x ⊓ z ⊔ x \ y) := by rw [sup_inf_self, sup_sdiff_left, ← sup_assoc]
273-
_ = x ⊓ (y \ z ⊓ (z ⊔ y) ⊔ x ⊓ (z ⊔ y) ⊔ x \ y) := by
274-
rw [sup_inf_left, sdiff_sup_self', inf_sup_right, sup_comm y]
275256
_ = x ⊓ (y \ z ⊔ (x ⊓ z ⊔ x ⊓ y) ⊔ x \ y) := by
276-
rw [inf_sdiff_sup_right, @inf_sup_left _ _ x z y]
257+
rw [sup_inf_self, sup_sdiff_left, ← sup_assoc, sup_inf_left, sdiff_sup_self',
258+
inf_sup_right, sup_comm y, inf_sdiff_sup_right, inf_sup_left x z y]
277259
_ = x ⊓ (y \ z ⊔ (x ⊓ z ⊔ (x ⊓ y ⊔ x \ y))) := by ac_rfl
278-
_ = x ⊓ (y \ z ⊔ (x ⊔ x ⊓ z)) := by rw [sup_inf_sdiff, sup_comm (x ⊓ z)]
279-
_ = x := by rw [sup_inf_self, sup_comm, inf_sup_self]
260+
_ = x := by rw [sup_inf_sdiff, sup_comm (x ⊓ z), sup_inf_self, sup_comm, inf_sup_self]
280261
· calc
281262
x ⊓ y \ z ⊓ (z ⊓ x ⊔ x \ y) = x ⊓ y \ z ⊓ (z ⊓ x) ⊔ x ⊓ y \ z ⊓ x \ y := by rw [inf_sup_left]
282263
_ = x ⊓ (y \ z ⊓ z ⊓ x) ⊔ x ⊓ y \ z ⊓ x \ y := by ac_rfl
@@ -319,11 +300,9 @@ theorem sdiff_sdiff_left' : (x \ y) \ z = x \ y ⊓ x \ z := by rw [sdiff_sdiff_
319300

320301
theorem sdiff_sdiff_sup_sdiff : z \ (x \ y ⊔ y \ x) = z ⊓ (z \ x ⊔ y) ⊓ (z \ y ⊔ x) :=
321302
calc
322-
z \ (x \ y ⊔ y \ x) = (z \ x ⊔ z ⊓ x ⊓ y) ⊓ (z \ y ⊔ z ⊓ y ⊓ x) := by
323-
rw [sdiff_sup, sdiff_sdiff_right, sdiff_sdiff_right]
324-
_ = z ⊓ (z \ x ⊔ y) ⊓ (z \ y ⊔ z ⊓ y ⊓ x) := by rw [sup_inf_left, sup_comm, sup_inf_sdiff]
325-
_ = z ⊓ (z \ x ⊔ y) ⊓ (z ⊓ (z \ y ⊔ x)) := by
326-
rw [sup_inf_left, sup_comm (z \ y), sup_inf_sdiff]
303+
z \ (x \ y ⊔ y \ x) = z ⊓ (z \ x ⊔ y) ⊓ (z ⊓ (z \ y ⊔ x)) := by
304+
rw [sdiff_sup, sdiff_sdiff_right, sdiff_sdiff_right, sup_inf_left, sup_comm, sup_inf_sdiff,
305+
sup_inf_left, sup_comm (z \ y), sup_inf_sdiff]
327306
_ = z ⊓ z ⊓ (z \ x ⊔ y) ⊓ (z \ y ⊔ x) := by ac_rfl
328307
_ = z ⊓ (z \ x ⊔ y) ⊓ (z \ y ⊔ x) := by rw [inf_idem]
329308

@@ -347,27 +326,20 @@ lemma sdiff_sdiff_sdiff_cancel_right (hcb : z ≤ y) : (x \ z) \ (y \ z) = x \ y
347326
theorem inf_sdiff : (x ⊓ y) \ z = x \ z ⊓ y \ z :=
348327
sdiff_unique
349328
(calc
350-
x ⊓ y ⊓ z ⊔ x \ z ⊓ y \ z = (x ⊓ y ⊓ z ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) := by rw [sup_inf_left]
351329
_ = (x ⊓ y ⊓ (z ⊔ x) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) := by
352-
rw [sup_inf_right, sup_sdiff_self_right, inf_sup_right, inf_sdiff_sup_right]
330+
rw [sup_inf_left, sup_inf_right, sup_sdiff_self_right, inf_sup_right, inf_sdiff_sup_right]
353331
_ = (y ⊓ (x ⊓ (x ⊔ z)) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) := by ac_rfl
354-
_ = (y ⊓ x ⊔ x \ z) ⊓ (x ⊓ y ⊔ y \ z) := by rw [inf_sup_self, sup_inf_inf_sdiff]
355-
_ = x ⊓ y ⊔ x \ z ⊓ y \ z := by rw [inf_comm y, sup_inf_left]
332+
_ = x ⊓ y ⊔ x \ z ⊓ y \ z := by rw [inf_sup_self, sup_inf_inf_sdiff, inf_comm y, sup_inf_left]
356333
_ = x ⊓ y := sup_eq_left.2 (inf_le_inf sdiff_le sdiff_le))
357334
(calc
358335
x ⊓ y ⊓ z ⊓ (x \ z ⊓ y \ z) = x ⊓ y ⊓ (z ⊓ x \ z) ⊓ y \ z := by ac_rfl
359336
_ = ⊥ := by rw [inf_sdiff_self_right, inf_bot_eq, bot_inf_eq])
360337

361338
/-- See also `sdiff_inf_right_comm`. -/
362339
theorem inf_sdiff_assoc (x y z : α) : (x ⊓ y) \ z = x ⊓ y \ z :=
363-
sdiff_unique
364-
(calc
365-
x ⊓ y ⊓ z ⊔ x ⊓ y \ z = x ⊓ (y ⊓ z) ⊔ x ⊓ y \ z := by rw [inf_assoc]
366-
_ = x ⊓ (y ⊓ z ⊔ y \ z) := by rw [← inf_sup_left]
367-
_ = x ⊓ y := by rw [sup_inf_sdiff])
368-
(calc
369-
x ⊓ y ⊓ z ⊓ (x ⊓ y \ z) = x ⊓ x ⊓ (y ⊓ z ⊓ y \ z) := by ac_rfl
370-
_ = ⊥ := by rw [inf_inf_sdiff, inf_bot_eq])
340+
sdiff_unique (by rw [inf_assoc, ← inf_sup_left, sup_inf_sdiff]) <| calc
341+
x ⊓ y ⊓ z ⊓ (x ⊓ y \ z) = x ⊓ x ⊓ (y ⊓ z ⊓ y \ z) := by ac_rfl
342+
_ = ⊥ := by rw [inf_inf_sdiff, inf_bot_eq]
371343

372344
/-- See also `inf_sdiff_assoc`. -/
373345
theorem sdiff_inf_right_comm (x y z : α) : x \ z ⊓ y = (x ⊓ y) \ z := by
@@ -390,8 +362,7 @@ theorem sup_eq_sdiff_sup_sdiff_sup_inf : x ⊔ y = x \ y ⊔ y \ x ⊔ x ⊓ y :
390362
calc
391363
x \ y ⊔ y \ x ⊔ x ⊓ y = (x \ y ⊔ y \ x ⊔ x) ⊓ (x \ y ⊔ y \ x ⊔ y) := by rw [sup_inf_left]
392364
_ = (x \ y ⊔ x ⊔ y \ x) ⊓ (x \ y ⊔ (y \ x ⊔ y)) := by ac_rfl
393-
_ = (x ⊔ y \ x) ⊓ (x \ y ⊔ y) := by rw [sup_sdiff_right, sup_sdiff_right]
394-
_ = x ⊔ y := by rw [sup_sdiff_self_right, sup_sdiff_self_left, inf_idem]
365+
_ = x ⊔ y := by simp
395366

396367
theorem sup_lt_of_lt_sdiff_left (h : y < z \ x) (hxz : x ≤ z) : x ⊔ y < z := by
397368
rw [← sup_sdiff_cancel_right hxz]
@@ -666,9 +637,7 @@ protected abbrev Function.Injective.booleanAlgebra [Max α] [Min α] [Top α] [B
666637
bot_le _ := map_bot.le.trans bot_le
667638
inf_compl_le_bot a := ((map_inf _ _).trans <| by rw [map_compl, inf_compl_eq_bot, map_bot]).le
668639
top_le_sup_compl a := ((map_sup _ _).trans <| by rw [map_compl, sup_compl_eq_top, map_top]).ge
669-
sdiff_eq a b := by
670-
refine hf ((map_sdiff _ _).trans (sdiff_eq.trans ?_))
671-
rw [map_inf, map_compl]
640+
sdiff_eq a b := hf <| (map_sdiff _ _).trans <| sdiff_eq.trans <| by rw [map_inf, map_compl]
672641
himp_eq a b := hf <| (map_himp _ _).trans <| himp_eq.trans <| by rw [map_sup, map_compl]
673642

674643
end lift

0 commit comments

Comments
 (0)