oalg-base-1.1.4.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Structure.Ring.Definition

Description

definition of Rings.

Synopsis

Semiring

type Semiring r = (Distributive r, Total r) Source #

distributive structure where * and + are total.

Note If r is Total and Distributive then Root r is Singleton.

rOne :: Semiring r => r Source #

the neutral element according to *, i.e. rOne == one unit.

rZero :: Semiring r => r Source #

the neutral element according to +, i.e. rZero == zero unit.

isMinusOne :: Semiring r => r -> Bool Source #

check being the additive inverse of rOne.

Ring

type Ring r = (Semiring r, Abelian r) Source #

abelian semi rings.

Galoisian

type Galoisian r = (Ring r, Commutative r, Invertible r) Source #

Note Not every element not equal to zero has to be invertible. As such Z is Galoisian.

Field

class Galoisian r => Field r where Source #

not degenerated commutative rings where every element not equal to zero has a multiplicative inverse.

Properties

  1. rZero /= rOne.
  2. For all x and y in r holds:

    1. If y /= rZero then x / y is valid
    2. If y == rZero then x / y is not valid and its evaluation will end up in a NotInvertible-exception.
  3. For all x and y in r with y /= rZero holds: y * (x / y) == x.

Minimal complete definition

Nothing

Methods

(/) :: r -> r -> r infixl 7 Source #

division.

Instances

Instances details
Field Q Source # 
Instance details

Defined in OAlg.Structure.Ring.Definition

Methods

(/) :: Q -> Q -> Q Source #