SimpleExtension

Contents

Description

Dieses Modul stellt einfache Ring- und Koerpererweiterungen der Form R[X]\(f) bereit. Das Polynom f wird ausschliesslich im Typ mitgefuehrt und befindet sich nicht auf Wertebene; das verhindert unabsichtliches Vermischung von Elementen verschiedener Quotientenringe.

Synopsis

Klassen fuer Polynome auf Typebene

class Ring (BaseRing p) ⇒ ReifyPoly p

Klasse fuer Typen, die Polynome auf Typebene darstellen. Das Gegenstueck waere in Anlehnung an die ueblichen Konventionen zur Programmierung auf Typniveau die Funktion reflectPoly, die wir aber nicht benoetigen und daher auch nicht implementiert haben.

class ReifyPoly p ⇒ ReifyIrreduciblePoly p

Klasse fuer Typen, die irreduzible Polynome auf Typebene darstellen.

Datentyp und Funktionen zu einfachen Erweiterungen

data SE p

Typ der Elemente der einfachen Erweiterung (simple extension) R[X]\(p).

Instances

(ReifyPoly p, Field (BaseRing p)) ⇒ Eq (SE p) 
(ReifyPoly p, Field (BaseRing p), Show (BaseRing p)) ⇒ Show (SE p) 
(ReifyPoly p, Arbitrary (BaseRing p)) ⇒ Arbitrary (SE p) 
(ReifyIrreduciblePoly p, Field (BaseRing p)) ⇒ IntegralDomain (SE p) 
ReifyPoly p ⇒ Ring (SE p) 
(ReifyIrreduciblePoly p, Field (BaseRing p)) ⇒ Field (SE p) 

canonRep ∷ (ReifyPoly p, Field (BaseRing p)) ⇒ SE p → Poly (BaseRing p)

Bestimmt zu einem Element des Faktorrings seinen kanonischen Repraesentanten mittels Polynomdivision durch das herausgeteilte Polynom.

Da wir nicht fordern, dass der Modulus ein normiertes Polynom ist, ist diese Funktion auf solche Grundringe beschraenkt, die Koerper sind.

adjointedRootReifyPoly p ⇒ SE p

Liefert das Element [X] im Quotientenring R[X]\(p), also die kuenstliche Nullstelle von p.

fromBaseReifyPoly p ⇒ BaseRing p → SE p

Hebt ein Element des Grundrings in den Quotientenring hoch.

Beispiele

data MinPolySqrt2

Dummytyp, der das Minimalpolynom der Quadratwurzel aus 2, X^2 - 2, repraesentiert.

data Qsqrt2inR

Dummytyp, der die kanonische Einbettung der rationalen Zahlen in die Erweiterung Q[X]\(X^2-2) repraesentiert.

demo ∷ IO ()

QuickCheck