diff options
author | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-03-21 16:37:12 +0000 |
---|---|---|
committer | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-03-21 16:37:12 +0000 |
commit | 5202560ea008a76048587f6ab63797f7517fbdc0 (patch) | |
tree | e584ee927085d067fdcdfca723eae685ae4d1c4c /src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda | |
parent | 9a5179a5e23e7e2eeed91badbcf3e0168fd44b64 (diff) |
Add some properties of algebraic pseudocode types.
Diffstat (limited to 'src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda')
-rw-r--r-- | src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda b/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda new file mode 100644 index 0000000..fe64b32 --- /dev/null +++ b/src/Helium/Algebra/Ordered/StrictTotal/Properties/AbelianGroup.agda @@ -0,0 +1,31 @@ +------------------------------------------------------------------------ +-- Agda Helium +-- +-- Algebraic properties of ordered abelian groups +------------------------------------------------------------------------ + +{-# OPTIONS --safe --without-K #-} + +open import Helium.Algebra.Ordered.StrictTotal.Bundles + +module Helium.Algebra.Ordered.StrictTotal.Properties.AbelianGroup + {ℓ₁ ℓ₂ ℓ₃} + (abelianGroup : AbelianGroup ℓ₁ ℓ₂ ℓ₃) + where + +open AbelianGroup abelianGroup + +open import Relation.Binary.Core +open import Relation.Binary.Reasoning.StrictPartialOrder strictPartialOrder + +open import Algebra.Properties.AbelianGroup Unordered.abelianGroup public +open import Algebra.Properties.CommutativeMonoid.Mult.TCOptimised Unordered.commutativeMonoid public +open import Helium.Algebra.Ordered.StrictTotal.Properties.Group group public + using (<⇒≱; ≤⇒≯; >⇒≉; ≈⇒≯; <⇒≉; ≈⇒≮; ≤∧≉⇒<; ≥∧≉⇒>; x<y⇒ε<yx⁻¹) + +⁻¹-anti-mono : _⁻¹ Preserves _<_ ⟶ _>_ +⁻¹-anti-mono {x} {y} x<y = begin-strict + y ⁻¹ ≈˘⟨ identityˡ (y ⁻¹) ⟩ + ε ∙ y ⁻¹ <⟨ ∙-invariantʳ (y ⁻¹) (x<y⇒ε<yx⁻¹ x<y) ⟩ + y ∙ x ⁻¹ ∙ y ⁻¹ ≈⟨ xyx⁻¹≈y y (x ⁻¹) ⟩ + x ⁻¹ ∎ |