Operations on Elements
Nearfield Arithmetic
The operations of addition, subtraction, and negation are inherited from the underlying Galois field.
The operation of multiplication distinguishes a nearfield from a field. In a nearfield, multiplication is not commutative and the left distributive law fails.
- + a: NfdElt -> NfdElt
- - a: NfdElt -> NfdElt
- a + b: NfdElt, NfdElt -> NfdElt
- a - b: NfdElt, NfdElt -> NfdElt
- a * b: NfdElt, NfdElt -> NfdElt
- a / b: NfdElt, NfdElt -> NfdElt
- a ^ k: NfdElt, RngIntElt -> NfdElt
- a +:= b: NfdElt, NfdElt -> NfdElt
- a -:= b: NfdElt, NfdElt -> NfdElt
- a *:= b: NfdElt, NfdElt -> NfdElt
- Inverse(a): NfdElt -> NfdElt
The inverse of \(a\).
Equality and Membership
Parent and Category
Predicates on Nearfield Elements
- Example: Simple Nearfield Arithmetic (ex-bb693c)
Run in calculator (opens in a new tab)
This example illustrates some of the basic operations available on nearfields and their elements. There is a strong connection with the arithmetic of the underlying Galois field of a nearfield
D, which is available as the attributeD`gf.> D := DicksonNearfield(3^2,2); > K := D`gf; > x := Element(D,K.1); > x; $.1 > Parent(x); Nearfield D of Dickson type defined by the pair (9, 2) Order = 81 > x^2; $.1^10 > Identity(D); 1 > assert x ne Identity(D); > assert x eq x; > Zero(D); 0 > Parent(Zero(D)); Nearfield D of Dickson type defined by the pair (9, 2) Order = 81 > assert not IsZero(D!1); > assert not IsZero(x); > assert IsZero(Zero(D)); > K<z> := GF(3,4); > x := Element(D,z^61); > y := Element(D,z^54); > assert x + y eq Element(D,z^61+z^54); > assert x - y eq Element(D,z^61-z^54); > x*y; z^35 > x/y; z^7 > x^y; z^29
- Example: Failure of Left Distributivity (ex-60b080)
A nearfield is right-distributive, but unlike a Galois field, multiplication is not commutative and the left-distributive law may fail.
> N := DicksonNearfield(3^2,4); > F<a> := N`gf; > x := Element(N,a^5215); > y := Element(N,a^5140); > z := Element(N,a^5819); > x*y eq y*x; false > x*(y+z) eq x*y+x*z; false > (y+z)*x eq y*x+z*x; true