@@ -1012,6 +1012,12 @@ neg-distrib-+ = +-Monomorphism.⁻¹-distrib-∙ ℚᵘ.+-0-isAbelianGroup (ℚ
1012
1012
+-monoʳ-≤ : ∀ r → (_+_ r) Preserves _≤_ ⟶ _≤_
1013
1013
+-monoʳ-≤ r p≤q = +-mono-≤ (≤-refl {r}) p≤q
1014
1014
1015
+ nonNeg+nonNeg⇒nonNeg : ∀ p .{{_ : NonNegative p}} q .{{_ : NonNegative q}} → NonNegative (p + q)
1016
+ nonNeg+nonNeg⇒nonNeg p q = nonNegative $ +-mono-≤ (nonNegative⁻¹ p) (nonNegative⁻¹ q)
1017
+
1018
+ nonPos+nonPos⇒nonPos : ∀ p .{{_ : NonPositive p}} q .{{_ : NonPositive q}} → NonPositive (p + q)
1019
+ nonPos+nonPos⇒nonPos p q = nonPositive $ +-mono-≤ (nonPositive⁻¹ p) (nonPositive⁻¹ q)
1020
+
1015
1021
------------------------------------------------------------------------
1016
1022
-- Properties of _+_ and _<_
1017
1023
@@ -1035,6 +1041,24 @@ neg-distrib-+ = +-Monomorphism.⁻¹-distrib-∙ ℚᵘ.+-0-isAbelianGroup (ℚ
1035
1041
+-monoʳ-< : ∀ r → (_+_ r) Preserves _<_ ⟶ _<_
1036
1042
+-monoʳ-< r p<q = +-mono-≤-< (≤-refl {r}) p<q
1037
1043
1044
+ pos+nonNeg⇒pos : ∀ p .{{_ : Positive p}} q .{{_ : NonNegative q}} → Positive (p + q)
1045
+ pos+nonNeg⇒pos p q = positive $ +-mono-<-≤ (positive⁻¹ p) (nonNegative⁻¹ q)
1046
+
1047
+ nonNeg+pos⇒pos : ∀ p .{{_ : NonNegative p}} q .{{_ : Positive q}} → Positive (p + q)
1048
+ nonNeg+pos⇒pos p q = positive $ +-mono-≤-< (nonNegative⁻¹ p) (positive⁻¹ q)
1049
+
1050
+ pos+pos⇒pos : ∀ p .{{_ : Positive p}} q .{{_ : Positive q}} → Positive (p + q)
1051
+ pos+pos⇒pos p q = positive $ +-mono-< (positive⁻¹ p) (positive⁻¹ q)
1052
+
1053
+ neg+nonPos⇒neg : ∀ p .{{_ : Negative p}} q .{{_ : NonPositive q}} → Negative (p + q)
1054
+ neg+nonPos⇒neg p q = negative $ +-mono-<-≤ (negative⁻¹ p) (nonPositive⁻¹ q)
1055
+
1056
+ nonPos+neg⇒neg : ∀ p .{{_ : NonPositive p}} q .{{_ : Negative q}} → Negative (p + q)
1057
+ nonPos+neg⇒neg p q = negative $ +-mono-≤-< (nonPositive⁻¹ p) (negative⁻¹ q)
1058
+
1059
+ neg+neg⇒neg : ∀ p .{{_ : Negative p}} q .{{_ : Negative q}} → Negative (p + q)
1060
+ neg+neg⇒neg p q = negative $ +-mono-< (negative⁻¹ p) (negative⁻¹ q)
1061
+
1038
1062
------------------------------------------------------------------------
1039
1063
-- Properties of _*_
1040
1064
------------------------------------------------------------------------
@@ -1340,6 +1364,34 @@ module _ where
1340
1364
*-cancelˡ-≤-neg : ∀ r .{{_ : Negative r}} → r * p ≤ r * q → p ≥ q
1341
1365
*-cancelˡ-≤-neg {p} {q} r rewrite *-comm r p | *-comm r q = *-cancelʳ-≤-neg r
1342
1366
1367
+ nonNeg*nonNeg⇒nonNeg : ∀ p .{{_ : NonNegative p}} q .{{_ : NonNegative q}} → NonNegative (p * q)
1368
+ nonNeg*nonNeg⇒nonNeg p q = nonNegative $ begin
1369
+ 0ℚ ≡⟨ *-zeroʳ p ⟨
1370
+ p * 0ℚ ≤⟨ *-monoˡ-≤-nonNeg p (nonNegative⁻¹ q) ⟩
1371
+ p * q ∎
1372
+ where open ≤-Reasoning
1373
+
1374
+ nonPos*nonNeg⇒nonPos : ∀ p .{{_ : NonPositive p}} q .{{_ : NonNegative q}} → NonPositive (p * q)
1375
+ nonPos*nonNeg⇒nonPos p q = nonPositive $ begin
1376
+ p * q ≤⟨ *-monoˡ-≤-nonPos p (nonNegative⁻¹ q) ⟩
1377
+ p * 0ℚ ≡⟨ *-zeroʳ p ⟩
1378
+ 0ℚ ∎
1379
+ where open ≤-Reasoning
1380
+
1381
+ nonNeg*nonPos⇒nonPos : ∀ p .{{_ : NonNegative p}} q .{{_ : NonPositive q}} → NonPositive (p * q)
1382
+ nonNeg*nonPos⇒nonPos p q = nonPositive $ begin
1383
+ p * q ≤⟨ *-monoˡ-≤-nonNeg p (nonPositive⁻¹ q) ⟩
1384
+ p * 0ℚ ≡⟨ *-zeroʳ p ⟩
1385
+ 0ℚ ∎
1386
+ where open ≤-Reasoning
1387
+
1388
+ nonPos*nonPos⇒nonPos : ∀ p .{{_ : NonPositive p}} q .{{_ : NonPositive q}} → NonNegative (p * q)
1389
+ nonPos*nonPos⇒nonPos p q = nonNegative $ begin
1390
+ 0ℚ ≡⟨ *-zeroʳ p ⟨
1391
+ p * 0ℚ ≤⟨ *-monoˡ-≤-nonPos p (nonPositive⁻¹ q) ⟩
1392
+ p * q ∎
1393
+ where open ≤-Reasoning
1394
+
1343
1395
------------------------------------------------------------------------
1344
1396
-- Properties of _*_ and _<_
1345
1397
@@ -1387,6 +1439,34 @@ module _ where
1387
1439
*-cancelʳ-<-nonPos : ∀ r .{{_ : NonPositive r}} → p * r < q * r → p > q
1388
1440
*-cancelʳ-<-nonPos {p} {q} r rewrite *-comm p r | *-comm q r = *-cancelˡ-<-nonPos r
1389
1441
1442
+ pos*pos⇒pos : ∀ p .{{_ : Positive p}} q .{{_ : Positive q}} → Positive (p * q)
1443
+ pos*pos⇒pos p q = positive $ begin-strict
1444
+ 0ℚ ≡⟨ *-zeroʳ p ⟨
1445
+ p * 0ℚ <⟨ *-monoʳ-<-pos p (positive⁻¹ q) ⟩
1446
+ p * q ∎
1447
+ where open ≤-Reasoning
1448
+
1449
+ neg*pos⇒neg : ∀ p .{{_ : Negative p}} q .{{_ : Positive q}} → Negative (p * q)
1450
+ neg*pos⇒neg p q = negative $ begin-strict
1451
+ p * q <⟨ *-monoʳ-<-neg p (positive⁻¹ q) ⟩
1452
+ p * 0ℚ ≡⟨ *-zeroʳ p ⟩
1453
+ 0ℚ ∎
1454
+ where open ≤-Reasoning
1455
+
1456
+ pos*neg⇒neg : ∀ p .{{_ : Positive p}} q .{{_ : Negative q}} → Negative (p * q)
1457
+ pos*neg⇒neg p q = negative $ begin-strict
1458
+ p * q <⟨ *-monoʳ-<-pos p (negative⁻¹ q) ⟩
1459
+ p * 0ℚ ≡⟨ *-zeroʳ p ⟩
1460
+ 0ℚ ∎
1461
+ where open ≤-Reasoning
1462
+
1463
+ neg*neg⇒pos : ∀ p .{{_ : Negative p}} q .{{_ : Negative q}} → Positive (p * q)
1464
+ neg*neg⇒pos p q = positive $ begin-strict
1465
+ 0ℚ ≡⟨ *-zeroʳ p ⟨
1466
+ p * 0ℚ <⟨ *-monoʳ-<-neg p (negative⁻¹ q) ⟩
1467
+ p * q ∎
1468
+ where open ≤-Reasoning
1469
+
1390
1470
------------------------------------------------------------------------
1391
1471
-- Properties of _⊓_
1392
1472
------------------------------------------------------------------------
0 commit comments