Module docstring
{"# Algebraic order homomorphism classes
This file defines hom classes for common properties at the intersection of order theory and algebra.
Typeclasses
Basic typeclasses
* NonnegHomClass: Homs are nonnegative: ∀ f a, 0 ≤ f a
* SubadditiveHomClass: Homs are subadditive: ∀ f a b, f (a + b) ≤ f a + f b
* SubmultiplicativeHomClass: Homs are submultiplicative: ∀ f a b, f (a * b) ≤ f a * f b
* MulLEAddHomClass: ∀ f a b, f (a * b) ≤ f a + f b
* NonarchimedeanHomClass: ∀ a b, f (a + b) ≤ max (f a) (f b)
Group norms
* AddGroupSeminormClass: Homs are nonnegative, subadditive, even and preserve zero.
* GroupSeminormClass: Homs are nonnegative, respect f (a * b) ≤ f a + f b, f a⁻¹ = f a and
  preserve zero.
* AddGroupNormClass: Homs are seminorms such that f x = 0 → x = 0 for all x.
* GroupNormClass: Homs are seminorms such that f x = 0 → x = 1 for all x.
Ring norms
* RingSeminormClass: Homs are submultiplicative group norms.
* RingNormClass: Homs are ring seminorms that are also additive group norms.
* MulRingSeminormClass: Homs are ring seminorms that are multiplicative.
* MulRingNormClass: Homs are ring norms that are multiplicative.
Notes
Typeclasses for seminorms are defined here while types of seminorms are defined in
Analysis.Normed.Group.Seminorm and Analysis.Normed.Ring.Seminorm because absolute values are
multiplicative ring norms but outside of this use we only consider real-valued seminorms.
TODO
Finitary versions of the current lemmas. ","### Basics ","### Group (semi)norms ","### Ring (semi)norms "}