constructive-algebra-0.3.0: A library of constructive algebra.



Structure of rings with explicit units.



class IntegralDomain a => ExplicitUnits a whereSource

A ring has explicit units if there is a function that can test if an element is invertible and if this is the case give the inverse.


unit :: a -> Maybe aSource

isUnit :: ExplicitUnits a => a -> BoolSource

An element is a unit if it is invertible.

(%|) :: (ExplicitUnits a, GCDDomain a) => a -> a -> BoolSource

Decidable units is sufficient to decide divisibility in GCD domains.

(~=) :: (ExplicitUnits a, GCDDomain a) => a -> a -> BoolSource

Test for associatedness, i.e. a ~ b iff a | b /\ b | a.