@@ -93,13 +93,11 @@ private theorem sdiff_sup_self' : y \ x ⊔ x = y ⊔ x :=
9393theorem 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) :=
110108theorem 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]
117114theorem 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
149137theorem 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
212200theorem 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
265249theorem 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
320301theorem 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
347326theorem 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`. -/
362339theorem 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`. -/
373345theorem 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
396367theorem 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
674643end lift
0 commit comments