@@ -286,6 +286,9 @@ n≤0⇒n≡0 z≤n = refl
286
286
≤∧≢⇒< {_} {suc n} (s≤s m≤n) 1+m≢1+n =
287
287
s≤s (≤∧≢⇒< m≤n (1+m≢1+n ∘ cong suc))
288
288
289
+ ≤∧≮⇒≡ : ∀ {m n} → m ≤ n → m ≮ n → m ≡ n
290
+ ≤∧≮⇒≡ m≤n m≮n = ≤-antisym m≤n (≮⇒≥ m≮n)
291
+
289
292
≤-<-connex : Connex _≤_ _<_
290
293
≤-<-connex m n with m ≤? n
291
294
... | yes m≤n = inj₁ m≤n
@@ -1185,6 +1188,30 @@ m⊔n≤m+n m n with ⊔-sel m n
1185
1188
... | inj₁ m⊔n≡m rewrite m⊔n≡m = m≤m+n m n
1186
1189
... | inj₂ m⊔n≡n rewrite m⊔n≡n = m≤n+m n m
1187
1190
1191
+ ------------------------------------------------------------------------
1192
+ -- Other properties of _⊔_ and _*_
1193
+
1194
+ *-distribˡ-⊔ : _*_ DistributesOverˡ _⊔_
1195
+ *-distribˡ-⊔ m zero o = sym (cong (_⊔ m * o) (*-zeroʳ m))
1196
+ *-distribˡ-⊔ m (suc n) zero = begin-equality
1197
+ m * (suc n ⊔ zero) ≡⟨⟩
1198
+ m * suc n ≡˘⟨ ⊔-identityʳ (m * suc n) ⟩
1199
+ m * suc n ⊔ zero ≡˘⟨ cong (m * suc n ⊔_) (*-zeroʳ m) ⟩
1200
+ m * suc n ⊔ m * zero ∎
1201
+ *-distribˡ-⊔ m (suc n) (suc o) = begin-equality
1202
+ m * (suc n ⊔ suc o) ≡⟨⟩
1203
+ m * suc (n ⊔ o) ≡⟨ *-suc m (n ⊔ o) ⟩
1204
+ m + m * (n ⊔ o) ≡⟨ cong (m +_) (*-distribˡ-⊔ m n o) ⟩
1205
+ m + (m * n ⊔ m * o) ≡⟨ +-distribˡ-⊔ m (m * n) (m * o) ⟩
1206
+ (m + m * n) ⊔ (m + m * o) ≡˘⟨ cong₂ _⊔_ (*-suc m n) (*-suc m o) ⟩
1207
+ (m * suc n) ⊔ (m * suc o) ∎
1208
+
1209
+ *-distribʳ-⊔ : _*_ DistributesOverʳ _⊔_
1210
+ *-distribʳ-⊔ = comm+distrˡ⇒distrʳ *-comm *-distribˡ-⊔
1211
+
1212
+ *-distrib-⊔ : _*_ DistributesOver _⊔_
1213
+ *-distrib-⊔ = *-distribˡ-⊔ , *-distribʳ-⊔
1214
+
1188
1215
------------------------------------------------------------------------
1189
1216
-- Properties of _⊓_
1190
1217
------------------------------------------------------------------------
@@ -1461,6 +1488,36 @@ m⊓n≤m+n m n with ⊓-sel m n
1461
1488
... | inj₁ m⊓n≡m rewrite m⊓n≡m = m≤m+n m n
1462
1489
... | inj₂ m⊓n≡n rewrite m⊓n≡n = m≤n+m n m
1463
1490
1491
+ ------------------------------------------------------------------------
1492
+ -- Other properties of _⊓_ and _*_
1493
+
1494
+ *-distribˡ-⊓ : _*_ DistributesOverˡ _⊓_
1495
+ *-distribˡ-⊓ m 0 o = begin-equality
1496
+ m * (0 ⊓ o) ≡⟨⟩
1497
+ m * 0 ≡⟨ *-zeroʳ m ⟩
1498
+ 0 ≡⟨⟩
1499
+ 0 ⊓ (m * o) ≡˘⟨ cong (_⊓ (m * o)) (*-zeroʳ m) ⟩
1500
+ (m * 0 ) ⊓ (m * o) ∎
1501
+ *-distribˡ-⊓ m (suc n) 0 = begin-equality
1502
+ m * (suc n ⊓ 0 ) ≡⟨⟩
1503
+ m * 0 ≡⟨ *-zeroʳ m ⟩
1504
+ 0 ≡˘⟨ ⊓-zeroʳ (m * suc n) ⟩
1505
+ (m * suc n) ⊓ 0 ≡˘⟨ cong (m * suc n ⊓_) (*-zeroʳ m) ⟩
1506
+ (m * suc n) ⊓ (m * 0 ) ∎
1507
+ *-distribˡ-⊓ m (suc n) (suc o) = begin-equality
1508
+ m * (suc n ⊓ suc o) ≡⟨⟩
1509
+ m * suc (n ⊓ o) ≡⟨ *-suc m (n ⊓ o) ⟩
1510
+ m + m * (n ⊓ o) ≡⟨ cong (m +_) (*-distribˡ-⊓ m n o) ⟩
1511
+ m + (m * n) ⊓ (m * o) ≡⟨ +-distribˡ-⊓ m (m * n) (m * o) ⟩
1512
+ (m + m * n) ⊓ (m + m * o) ≡˘⟨ cong₂ _⊓_ (*-suc m n) (*-suc m o) ⟩
1513
+ (m * suc n) ⊓ (m * suc o) ∎
1514
+
1515
+ *-distribʳ-⊓ : _*_ DistributesOverʳ _⊓_
1516
+ *-distribʳ-⊓ = comm+distrˡ⇒distrʳ *-comm *-distribˡ-⊓
1517
+
1518
+ *-distrib-⊓ : _*_ DistributesOver _⊓_
1519
+ *-distrib-⊓ = *-distribˡ-⊓ , *-distribʳ-⊓
1520
+
1464
1521
------------------------------------------------------------------------
1465
1522
-- Properties of _∸_
1466
1523
------------------------------------------------------------------------
0 commit comments