summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Brown <greg.brown@cl.cam.ac.uk>2022-04-05 12:43:53 +0100
committerGreg Brown <greg.brown@cl.cam.ac.uk>2022-04-05 12:43:53 +0100
commit7de7db24ba5bb2cfe9fae6f070e60db3510fcc69 (patch)
tree50f3e5e49de31f640501844d8dd23f8baeba04a4
parent2f4a5a56437837cc90c9043131764513472347df (diff)
Add a useful transport proof.
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda2
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/CommutativeRing.agda2
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/DivisionRing.agda2
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/Field.agda2
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/Group.agda27
-rw-r--r--src/Helium/Algebra/Ordered/StrictTotal/Properties/Ring.agda2
6 files changed, 37 insertions, 0 deletions
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda
index 7972c4f..8ee5612 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda
@@ -73,4 +73,6 @@ open import Helium.Algebra.Ordered.StrictTotal.Properties.Group group public
; x<y⇒ε<y∙x⁻¹ ; ε<y∙x⁻¹⇒x<y
; x≤y⇒ε≤y∙x⁻¹ ; ε≤y∙x⁻¹⇒x≤y
+
+ ; x<y∙z⇒x∙z⁻¹<y
)
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/CommutativeRing.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/CommutativeRing.agda
index 95e43ba..657fa8f 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/CommutativeRing.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/CommutativeRing.agda
@@ -100,4 +100,6 @@ open import Helium.Algebra.Ordered.StrictTotal.Properties.Ring ring public
; x>1∧n≢0⇒x^n>1; 0≤x<1∧n≢0⇒x^n<1
; x≥1⇒x^n≥1; 0≤x≤1⇒x^n≤1
+
+ ; x<y+z⇒x-z<y
)
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/DivisionRing.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/DivisionRing.agda
index bfd38b7..4582320 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/DivisionRing.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/DivisionRing.agda
@@ -80,6 +80,8 @@ open import Helium.Algebra.Ordered.StrictTotal.Properties.Ring ring public
; x<y⇒0<y-x; 0<y-x⇒x<y
; x≤y⇒0≤y-x; 0≤y-x⇒x≤y
+ ; x<y+z⇒x-z<y
+
; 0≤1; 1≈0⇒x≈y; x≉y⇒0<1; x<y⇒0<1
; x>0⇒*-monoˡ-<; x>0⇒*-monoʳ-<; x<0⇒*-anti-monoˡ-<; x<0⇒*-anti-monoʳ-<
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Field.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Field.agda
index 1669172..9ab34f2 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Field.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Field.agda
@@ -80,6 +80,8 @@ open import Helium.Algebra.Ordered.StrictTotal.Properties.DivisionRing divisionR
; x<y⇒0<y-x; 0<y-x⇒x<y
; x≤y⇒0≤y-x; 0≤y-x⇒x≤y
+ ; x<y+z⇒x-z<y
+
; 0≤1; 1≈0⇒x≈y; x≉y⇒0<1; x<y⇒0<1
; x>0⇒*-monoˡ-<; x>0⇒*-monoʳ-<; x<0⇒*-anti-monoˡ-<; x<0⇒*-anti-monoʳ-<
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Group.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Group.agda
index 81c57ad..cf2c9df 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Group.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Group.agda
@@ -228,3 +228,30 @@ x≤y⇒ε≤y∙x⁻¹ {x} {y} x≤y = begin
y ∙ (x ⁻¹ ∙ x) ≈⟨ ∙-congˡ (inverseˡ x) ⟩
y ∙ ε ≈⟨ identityʳ y ⟩
y ∎
+
+---- Transport
+
+-- x∙y⁻¹<z⇒x<z∙y
+-- x⁻¹∙y<z⇒y<x∙z
+-- x∙y⁻¹>z⇒x>z∙y
+-- x⁻¹∙y>z⇒y>x∙z
+-- x∙y⁻¹≤z⇒x≤z∙y
+-- x⁻¹∙y≤z⇒y≤x∙z
+-- x∙y⁻¹≥z⇒x≥z∙y
+-- x⁻¹∙y≥z⇒y≥x∙z
+
+x<y∙z⇒x∙z⁻¹<y : ∀ {x y z} → x < y ∙ z → x ∙ z ⁻¹ < y
+x<y∙z⇒x∙z⁻¹<y {x} {y} {z} x<y∙z = ∙-cancelʳ-< _ _ (begin-strict
+ x ∙ z ⁻¹ ∙ z ≈⟨ assoc x _ z ⟩
+ x ∙ (z ⁻¹ ∙ z) ≈⟨ ∙-congˡ (inverseˡ z) ⟩
+ x ∙ ε ≈⟨ identityʳ x ⟩
+ x <⟨ x<y∙z ⟩
+ y ∙ z ∎)
+
+-- x<y∙z⇒y⁻¹∙x<z
+-- x>y∙z⇒x∙z⁻¹>y
+-- x>y∙z⇒y⁻¹∙x>z
+-- x≤y∙z⇒x∙z⁻¹≤y
+-- x≤y∙z⇒y⁻¹∙x≤z
+-- x≥y∙z⇒x∙z⁻¹≥y
+-- x≥y∙z⇒y⁻¹∙x≥z
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Ring.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Ring.agda
index 624cd21..fe31823 100644
--- a/src/Helium/Algebra/Ordered/StrictTotal/Properties/Ring.agda
+++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/Ring.agda
@@ -122,6 +122,8 @@ open import Helium.Algebra.Ordered.StrictTotal.Properties.AbelianGroup +-abelian
; ε<y∙x⁻¹⇒x<y to 0<y-x⇒x<y
; x≤y⇒ε≤y∙x⁻¹ to x≤y⇒0≤y-x
; ε≤y∙x⁻¹⇒x≤y to 0≤y-x⇒x≤y
+
+ ; x<y∙z⇒x∙z⁻¹<y to x<y+z⇒x-z<y
)
--------------------------------------------------------------------------------