@@ -26,7 +26,21 @@ import Algebra.Consequences.Setoid (setoid A) as Base
26
26
27
27
open Base public
28
28
hiding
29
- ( comm+assoc⇒middleFour
29
+ ( comm∧assoc⇒middleFour
30
+ ; identity∧middleFour⇒assoc
31
+ ; identity∧middleFour⇒comm
32
+ ; assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ
33
+ ; assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ
34
+ ; assoc∧id∧invʳ⇒invˡ-unique
35
+ ; assoc∧id∧invˡ⇒invʳ-unique
36
+ ; comm∧distrˡ⇒distrʳ
37
+ ; comm∧distrʳ⇒distrˡ
38
+ ; comm⇒sym[distribˡ]
39
+ ; subst∧comm⇒sym
40
+ ; wlog
41
+ ; sel⇒idem
42
+ -- plus all the deprecated versions of the above
43
+ ; comm+assoc⇒middleFour
30
44
; identity+middleFour⇒assoc
31
45
; identity+middleFour⇒comm
32
46
; assoc+distribʳ+idʳ+invʳ⇒zeˡ
@@ -35,54 +49,51 @@ open Base public
35
49
; assoc+id+invˡ⇒invʳ-unique
36
50
; comm+distrˡ⇒distrʳ
37
51
; comm+distrʳ⇒distrˡ
38
- ; comm⇒sym[distribˡ]
39
52
; subst+comm⇒sym
40
- ; wlog
41
- ; sel⇒idem
42
53
)
43
54
44
55
------------------------------------------------------------------------
45
56
-- Group-like structures
46
57
47
58
module _ {_∙_ _⁻¹ ε} where
48
59
49
- assoc+id+ invʳ⇒invˡ-unique : Associative _∙_ → Identity ε _∙_ →
60
+ assoc∧id∧ invʳ⇒invˡ-unique : Associative _∙_ → Identity ε _∙_ →
50
61
RightInverse ε _⁻¹ _∙_ →
51
62
∀ x y → (x ∙ y) ≡ ε → x ≡ (y ⁻¹)
52
- assoc+id+ invʳ⇒invˡ-unique = Base.assoc+id+ invʳ⇒invˡ-unique (cong₂ _)
63
+ assoc∧id∧ invʳ⇒invˡ-unique = Base.assoc∧id∧ invʳ⇒invˡ-unique (cong₂ _)
53
64
54
- assoc+id+ invˡ⇒invʳ-unique : Associative _∙_ → Identity ε _∙_ →
65
+ assoc∧id∧ invˡ⇒invʳ-unique : Associative _∙_ → Identity ε _∙_ →
55
66
LeftInverse ε _⁻¹ _∙_ →
56
67
∀ x y → (x ∙ y) ≡ ε → y ≡ (x ⁻¹)
57
- assoc+id+ invˡ⇒invʳ-unique = Base.assoc+id+ invˡ⇒invʳ-unique (cong₂ _)
68
+ assoc∧id∧ invˡ⇒invʳ-unique = Base.assoc∧id∧ invˡ⇒invʳ-unique (cong₂ _)
58
69
59
70
------------------------------------------------------------------------
60
71
-- Ring-like structures
61
72
62
73
module _ {_+_ _*_ -_ 0#} where
63
74
64
- assoc+ distribʳ+ idʳ+ invʳ⇒zeˡ : Associative _+_ → _*_ DistributesOverʳ _+_ →
75
+ assoc∧ distribʳ∧ idʳ∧ invʳ⇒zeˡ : Associative _+_ → _*_ DistributesOverʳ _+_ →
65
76
RightIdentity 0# _+_ → RightInverse 0# -_ _+_ →
66
77
LeftZero 0# _*_
67
- assoc+ distribʳ+ idʳ+ invʳ⇒zeˡ =
68
- Base.assoc+ distribʳ+ idʳ+ invʳ⇒zeˡ (cong₂ _+_) (cong₂ _*_)
78
+ assoc∧ distribʳ∧ idʳ∧ invʳ⇒zeˡ =
79
+ Base.assoc∧ distribʳ∧ idʳ∧ invʳ⇒zeˡ (cong₂ _+_) (cong₂ _*_)
69
80
70
- assoc+ distribˡ+ idʳ+ invʳ⇒zeʳ : Associative _+_ → _*_ DistributesOverˡ _+_ →
81
+ assoc∧ distribˡ∧ idʳ∧ invʳ⇒zeʳ : Associative _+_ → _*_ DistributesOverˡ _+_ →
71
82
RightIdentity 0# _+_ → RightInverse 0# -_ _+_ →
72
83
RightZero 0# _*_
73
- assoc+ distribˡ+ idʳ+ invʳ⇒zeʳ =
74
- Base.assoc+ distribˡ+ idʳ+ invʳ⇒zeʳ (cong₂ _+_) (cong₂ _*_)
84
+ assoc∧ distribˡ∧ idʳ∧ invʳ⇒zeʳ =
85
+ Base.assoc∧ distribˡ∧ idʳ∧ invʳ⇒zeʳ (cong₂ _+_) (cong₂ _*_)
75
86
76
87
------------------------------------------------------------------------
77
88
-- Bisemigroup-like structures
78
89
79
90
module _ {_∙_ _◦_ : Op₂ A} (∙-comm : Commutative _∙_) where
80
91
81
- comm+ distrˡ⇒distrʳ : _∙_ DistributesOverˡ _◦_ → _∙_ DistributesOverʳ _◦_
82
- comm+ distrˡ⇒distrʳ = Base.comm+distrˡ⇒distrʳ (cong₂ _) ∙-comm
92
+ comm∧ distrˡ⇒distrʳ : _∙_ DistributesOverˡ _◦_ → _∙_ DistributesOverʳ _◦_
93
+ comm∧ distrˡ⇒distrʳ = Base.comm+distrˡ⇒distrʳ (cong₂ _) ∙-comm
83
94
84
- comm+ distrʳ⇒distrˡ : _∙_ DistributesOverʳ _◦_ → _∙_ DistributesOverˡ _◦_
85
- comm+ distrʳ⇒distrˡ = Base.comm+ distrʳ⇒distrˡ (cong₂ _) ∙-comm
95
+ comm∧ distrʳ⇒distrˡ : _∙_ DistributesOverʳ _◦_ → _∙_ DistributesOverˡ _◦_
96
+ comm∧ distrʳ⇒distrˡ = Base.comm∧ distrʳ⇒distrˡ (cong₂ _) ∙-comm
86
97
87
98
comm⇒sym[distribˡ] : ∀ x → Symmetric (λ y z → (x ◦ (y ∙ z)) ≡ ((x ◦ y) ∙ (x ◦ z)))
88
99
comm⇒sym[distribˡ] = Base.comm⇒sym[distribˡ] (cong₂ _◦_) ∙-comm
@@ -100,31 +111,91 @@ module _ {_∙_ : Op₂ A} where
100
111
101
112
module _ {_∙_ : Op₂ A} where
102
113
103
- comm+ assoc⇒middleFour : Commutative _∙_ → Associative _∙_ →
114
+ comm∧ assoc⇒middleFour : Commutative _∙_ → Associative _∙_ →
104
115
_∙_ MiddleFourExchange _∙_
105
- comm+ assoc⇒middleFour = Base.comm+ assoc⇒middleFour (cong₂ _∙_)
116
+ comm∧ assoc⇒middleFour = Base.comm∧ assoc⇒middleFour (cong₂ _∙_)
106
117
107
- identity+ middleFour⇒assoc : {e : A} → Identity e _∙_ →
118
+ identity∧ middleFour⇒assoc : {e : A} → Identity e _∙_ →
108
119
_∙_ MiddleFourExchange _∙_ →
109
120
Associative _∙_
110
- identity+ middleFour⇒assoc = Base.identity+ middleFour⇒assoc (cong₂ _∙_)
121
+ identity∧ middleFour⇒assoc = Base.identity∧ middleFour⇒assoc (cong₂ _∙_)
111
122
112
- identity+ middleFour⇒comm : {_+_ : Op₂ A} {e : A} → Identity e _+_ →
123
+ identity∧ middleFour⇒comm : {_+_ : Op₂ A} {e : A} → Identity e _+_ →
113
124
_∙_ MiddleFourExchange _+_ →
114
125
Commutative _∙_
115
- identity+ middleFour⇒comm = Base.identity+ middleFour⇒comm (cong₂ _∙_)
126
+ identity∧ middleFour⇒comm = Base.identity∧ middleFour⇒comm (cong₂ _∙_)
116
127
117
128
------------------------------------------------------------------------
118
129
-- Without Loss of Generality
119
130
120
131
module _ {p} {P : Pred A p} where
121
132
122
- subst+ comm⇒sym : ∀ {f} (f-comm : Commutative f) →
133
+ subst∧ comm⇒sym : ∀ {f} (f-comm : Commutative f) →
123
134
Symmetric (λ a b → P (f a b))
124
- subst+ comm⇒sym = Base.subst+ comm⇒sym {P = P} subst
135
+ subst∧ comm⇒sym = Base.subst∧ comm⇒sym {P = P} subst
125
136
126
137
wlog : ∀ {f} (f-comm : Commutative f) →
127
138
∀ {r} {_R_ : Rel _ r} → Total _R_ →
128
139
(∀ a b → a R b → P (f a b)) →
129
140
∀ a b → P (f a b)
130
141
wlog = Base.wlog {P = P} subst
142
+
143
+
144
+ ------------------------------------------------------------------------
145
+ -- DEPRECATED NAMES
146
+ ------------------------------------------------------------------------
147
+ -- Please use the new names as continuing support for the old names is
148
+ -- not guaranteed.
149
+
150
+ -- Version 2.0
151
+
152
+ comm+assoc⇒middleFour = comm∧assoc⇒middleFour
153
+ {-# WARNING_ON_USAGE comm+assoc⇒middleFour
154
+ "Warning: comm+assoc⇒middleFour was deprecated in v2.0.
155
+ Please use comm∧assoc⇒middleFour instead."
156
+ #-}
157
+ identity+middleFour⇒assoc = identity∧middleFour⇒assoc
158
+ {-# WARNING_ON_USAGE identity+middleFour⇒assoc
159
+ "Warning: identity+middleFour⇒assoc was deprecated in v2.0.
160
+ Please use identity∧middleFour⇒assoc instead."
161
+ #-}
162
+ identity+middleFour⇒comm = identity∧middleFour⇒comm
163
+ {-# WARNING_ON_USAGE identity+middleFour⇒comm
164
+ "Warning: identity+middleFour⇒comm was deprecated in v2.0.
165
+ Please use identity∧middleFour⇒comm instead."
166
+ #-}
167
+ comm+distrˡ⇒distrʳ = comm∧distrˡ⇒distrʳ
168
+ {-# WARNING_ON_USAGE comm+distrˡ⇒distrʳ
169
+ "Warning: comm+distrˡ⇒distrʳ was deprecated in v2.0.
170
+ Please use comm∧distrˡ⇒distrʳ instead."
171
+ #-}
172
+ comm+distrʳ⇒distrˡ = comm∧distrʳ⇒distrˡ
173
+ {-# WARNING_ON_USAGE comm+distrʳ⇒distrˡ
174
+ "Warning: comm+distrʳ⇒distrˡ was deprecated in v2.0.
175
+ Please use comm∧distrʳ⇒distrˡ instead."
176
+ #-}
177
+ assoc+distribʳ+idʳ+invʳ⇒zeˡ = assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ
178
+ {-# WARNING_ON_USAGE assoc+distribʳ+idʳ+invʳ⇒zeˡ
179
+ "Warning: assoc+distribʳ+idʳ+invʳ⇒zeˡ was deprecated in v2.0.
180
+ Please use assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ instead."
181
+ #-}
182
+ assoc+distribˡ+idʳ+invʳ⇒zeʳ = assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ
183
+ {-# WARNING_ON_USAGE assoc+distribˡ+idʳ+invʳ⇒zeʳ
184
+ "Warning: assoc+distribˡ+idʳ+invʳ⇒zeʳ was deprecated in v2.0.
185
+ Please use assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ instead."
186
+ #-}
187
+ assoc+id+invʳ⇒invˡ-unique = assoc∧id∧invʳ⇒invˡ-unique
188
+ {-# WARNING_ON_USAGE assoc+id+invʳ⇒invˡ-unique
189
+ "Warning: assoc+id+invʳ⇒invˡ-unique was deprecated in v2.0.
190
+ Please use assoc∧id∧invʳ⇒invˡ-unique instead."
191
+ #-}
192
+ assoc+id+invˡ⇒invʳ-unique = assoc∧id∧invˡ⇒invʳ-unique
193
+ {-# WARNING_ON_USAGE assoc+id+invˡ⇒invʳ-unique
194
+ "Warning: assoc+id+invˡ⇒invʳ-unique was deprecated in v2.0.
195
+ Please use assoc∧id∧invˡ⇒invʳ-unique instead."
196
+ #-}
197
+ subst+comm⇒sym = subst∧comm⇒sym
198
+ {-# WARNING_ON_USAGE subst+comm⇒sym
199
+ "Warning: subst+comm⇒sym was deprecated in v2.0.
200
+ Please use subst∧comm⇒sym instead."
201
+ #-}
0 commit comments