@@ -40,50 +40,65 @@ open Function
40
40
variable {α β : Type *}
41
41
42
42
section Group
43
- variable [Lattice α] [Group α] [CovariantClass α α (· * ·) (· ≤ ·)]
44
- [CovariantClass α α (swap (· * ·)) (· ≤ ·)]
43
+ variable [Lattice α] [Group α]
45
44
46
45
-- Special case of Bourbaki A.VI.9 (1)
47
46
@[to_additive]
48
- lemma mul_sup (a b c : α) : c * (a ⊔ b) = c * a ⊔ c * b := (OrderIso.mulLeft _).map_sup _ _
47
+ lemma mul_sup [CovariantClass α α (· * ·) (· ≤ ·)] (a b c : α) :
48
+ c * (a ⊔ b) = c * a ⊔ c * b :=
49
+ (OrderIso.mulLeft _).map_sup _ _
49
50
50
51
@[to_additive]
51
- lemma sup_mul (a b c : α) : (a ⊔ b) * c = a * c ⊔ b * c := (OrderIso.mulRight _).map_sup _ _
52
+ lemma sup_mul [CovariantClass α α (swap (· * ·)) (· ≤ ·)] (a b c : α) :
53
+ (a ⊔ b) * c = a * c ⊔ b * c :=
54
+ (OrderIso.mulRight _).map_sup _ _
52
55
53
56
@[to_additive]
54
- lemma mul_inf (a b c : α) : c * (a ⊓ b) = c * a ⊓ c * b := (OrderIso.mulLeft _).map_inf _ _
57
+ lemma mul_inf [CovariantClass α α (· * ·) (· ≤ ·)] (a b c : α) :
58
+ c * (a ⊓ b) = c * a ⊓ c * b :=
59
+ (OrderIso.mulLeft _).map_inf _ _
55
60
56
61
@[to_additive]
57
- lemma inf_mul (a b c : α) : (a ⊓ b) * c = a * c ⊓ b * c := (OrderIso.mulRight _).map_inf _ _
62
+ lemma inf_mul [CovariantClass α α (swap (· * ·)) (· ≤ ·)] (a b c : α) :
63
+ (a ⊓ b) * c = a * c ⊓ b * c :=
64
+ (OrderIso.mulRight _).map_inf _ _
65
+
66
+ @[to_additive]
67
+ lemma sup_div [CovariantClass α α (swap (· * ·)) (· ≤ ·)] (a b c : α) :
68
+ (a ⊔ b) / c = a / c ⊔ b / c :=
69
+ (OrderIso.divRight _).map_sup _ _
70
+
71
+ @[to_additive]
72
+ lemma inf_div [CovariantClass α α (swap (· * ·)) (· ≤ ·)] (a b c : α) :
73
+ (a ⊓ b) / c = a / c ⊓ b / c :=
74
+ (OrderIso.divRight _).map_inf _ _
75
+
76
+ section
77
+ variable [CovariantClass α α (· * ·) (· ≤ ·)] [CovariantClass α α (swap (· * ·)) (· ≤ ·)]
58
78
59
- -- Special case of Bourbaki A.VI.9 (2)
60
79
@[to_additive] lemma inv_sup (a b : α) : (a ⊔ b)⁻¹ = a⁻¹ ⊓ b⁻¹ := (OrderIso.inv α).map_sup _ _
61
80
62
81
@[to_additive] lemma inv_inf (a b : α) : (a ⊓ b)⁻¹ = a⁻¹ ⊔ b⁻¹ := (OrderIso.inv α).map_inf _ _
63
82
64
83
@[to_additive]
65
84
lemma div_sup (a b c : α) : c / (a ⊔ b) = c / a ⊓ c / b := (OrderIso.divLeft c).map_sup _ _
66
85
67
- @[to_additive]
68
- lemma sup_div (a b c : α) : (a ⊔ b) / c = a / c ⊔ b / c := (OrderIso.divRight _).map_sup _ _
69
-
70
86
@[to_additive]
71
87
lemma div_inf (a b c : α) : c / (a ⊓ b) = c / a ⊔ c / b := (OrderIso.divLeft c).map_inf _ _
72
88
73
- @[to_additive]
74
- lemma inf_div (a b c : α) : (a ⊓ b) / c = a / c ⊓ b / c := (OrderIso.divRight _).map_inf _ _
75
-
76
89
-- In fact 0 ≤ n•a implies 0 ≤ a, see L. Fuchs, "Partially ordered algebraic systems"
77
90
-- Chapter V, 1.E
78
91
-- See also `one_le_pow_iff` for the existing version in linear orders
79
92
@[to_additive]
80
93
lemma pow_two_semiclosed
81
- [CovariantClass α α (swap (· * ·)) (· ≤ ·)] {a : α} (ha : 1 ≤ a ^ 2 ) : 1 ≤ a := by
94
+ {a : α} (ha : 1 ≤ a ^ 2 ) : 1 ≤ a := by
82
95
suffices this : (a ⊓ 1 ) * (a ⊓ 1 ) = a ⊓ 1 by
83
96
rwa [← inf_eq_right, ← mul_right_eq_self]
84
97
rw [mul_inf, inf_mul, ← pow_two, mul_one, one_mul, inf_assoc, inf_left_idem, inf_comm,
85
98
inf_assoc, inf_of_le_left ha]
86
99
100
+ end
101
+
87
102
end Group
88
103
89
104
variable [Lattice α] [CommGroup α]
0 commit comments