@@ -1012,6 +1012,12 @@ neg-distrib-+ = +-Monomorphism.⁻¹-distrib-∙ ℚᵘ.+-0-isAbelianGroup (ℚ
10121012+-monoʳ-≤ : ∀ r → (_+_ r) Preserves _≤_ ⟶ _≤_
10131013+-monoʳ-≤ r p≤q = +-mono-≤ (≤-refl {r}) p≤q
10141014
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+
10151021------------------------------------------------------------------------
10161022-- Properties of _+_ and _<_
10171023
@@ -1035,6 +1041,24 @@ neg-distrib-+ = +-Monomorphism.⁻¹-distrib-∙ ℚᵘ.+-0-isAbelianGroup (ℚ
10351041+-monoʳ-< : ∀ r → (_+_ r) Preserves _<_ ⟶ _<_
10361042+-monoʳ-< r p<q = +-mono-≤-< (≤-refl {r}) p<q
10371043
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+
10381062------------------------------------------------------------------------
10391063-- Properties of _*_
10401064------------------------------------------------------------------------
@@ -1340,6 +1364,34 @@ module _ where
13401364*-cancelˡ-≤-neg : ∀ r .{{_ : Negative r}} → r * p ≤ r * q → p ≥ q
13411365*-cancelˡ-≤-neg {p} {q} r rewrite *-comm r p | *-comm r q = *-cancelʳ-≤-neg r
13421366
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+
13431395------------------------------------------------------------------------
13441396-- Properties of _*_ and _<_
13451397
@@ -1387,6 +1439,34 @@ module _ where
13871439*-cancelʳ-<-nonPos : ∀ r .{{_ : NonPositive r}} → p * r < q * r → p > q
13881440*-cancelʳ-<-nonPos {p} {q} r rewrite *-comm p r | *-comm q r = *-cancelˡ-<-nonPos r
13891441
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+
13901470------------------------------------------------------------------------
13911471-- Properties of _⊓_
13921472------------------------------------------------------------------------
0 commit comments