OpenMath Content Dictionary: order1
Canonical URL:
http://www.win.tue.nl/SCIEnce/cds/order1.ocd
CD File:
order1.ocd
CD as XML Encoded OpenMath:
order1.omcd
Defines:
algebraic_integer , algebraic_number , is_Dedekind , is_maximal_order , is_nonzero_divisor , is_principal_ideal_domain , maximal_order , number_field , order , primitive_element , ring_integers
Date:
2009-07-02
Version:
1
(Revision 7)
Review Date:
2017-09-30
Status:
experimental
This CD defines the basic functions and constructors for orders of number fields. Written by S. Lesseni (lesseni@math.tu-berlin.de).
A CD of basic functions for orders of number fields written for SCIEnce project. Note that all the rings used here will be considered unital.
The reference textbooks are:
(1) M. Pohst and H. Zassenhaus, Algorithmic Algebraic Number Theory, Cambridge
Univ. Press, 1989.
(2) H. Cohen, A course in Computational Algebraic Number Theory. Berlin, Springer-Verlag (1993).
Role:
application
Description:
This symbol represents a unary boolean function. The argument should be a ring R. When evaluated on R, the function returns true if R is a Dedekind ring and false otherwise. Note that a ring R is a Dedekind ring if it is Noetherian, integrally closed (so integral) and such that every non-zero prime ideal is maximal.
Commented Mathematical property (CMP):
if R is a Dedekind ring and a subring of the rational field Q then R = Z.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="order1" name="is_Dedekind"/>
<OMV name="R"/>
</OMA>
<OMA>
<OMS cd="ring1" name="is_subring"/>
<OMS cd="fieldname1" name="Q"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="eq"/>
<OMV name="R"/>
<OMS cd="ringname1" name="Z"/>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="order1">is_Dedekind</csymbol><ci>R</ci></apply>
<apply><csymbol cd="ring1">is_subring</csymbol><csymbol cd="fieldname1">Q</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="relation1">eq</csymbol><ci>R</ci><csymbol cd="ringname1">Z</csymbol></apply>
</apply>
</math>
Prefix
Popcorn
order1.is_Dedekind($R) and ring1.is_subring(fieldname1.Q, $R) ==> $R = ringname1.Z
Rendered Presentation MathML
is_Dedekind
(
R
)
∧
is_subring
(
Q
,
R
)
⇒
R
=
Z
Example:
if the ring (R,+,0,-,*,1) is a principal ideal domain then (R,+,0,-,*,1) is a Dedekind ring.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMBIND>
<OMS cd="quant1" name="forall"/>
<OMBVAR>
<OMV name="R"/>
<OMV name="plus"/>
<OMV name="zero"/>
<OMV name="minus"/>
<OMV name="times"/>
<OMV name="one"/>
</OMBVAR>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="order1" name="is_principal_ideal_domain"/>
<OMA>
<OMS cd="ring1" name="ring"/>
<OMV name="R"/>
<OMV name="plus"/>
<OMV name="zero"/>
<OMV name="minus"/>
<OMV name="times"/>
<OMV name="one"/>
</OMA>
</OMA>
<OMA>
<OMS cd="order1" name="is_Dedekind"/>
<OMA>
<OMS cd="ring1" name="ring"/>
<OMV name="R"/>
<OMV name="plus"/>
<OMV name="zero"/>
<OMV name="minus"/>
<OMV name="times"/>
<OMV name="one"/>
</OMA>
</OMA>
</OMA>
</OMBIND>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>R</ci></bvar>
<bvar><ci>plus</ci></bvar>
<bvar><ci>zero</ci></bvar>
<bvar><ci>minus</ci></bvar>
<bvar><ci>times</ci></bvar>
<bvar><ci>one</ci></bvar>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="order1">is_principal_ideal_domain</csymbol>
<apply><csymbol cd="ring1">ring</csymbol>
<ci>R</ci>
<ci>plus</ci>
<ci>zero</ci>
<ci>minus</ci>
<ci>times</ci>
<ci>one</ci>
</apply>
</apply>
<apply><csymbol cd="order1">is_Dedekind</csymbol>
<apply><csymbol cd="ring1">ring</csymbol>
<ci>R</ci>
<ci>plus</ci>
<ci>zero</ci>
<ci>minus</ci>
<ci>times</ci>
<ci>one</ci>
</apply>
</apply>
</apply>
</bind>
</math>
Prefix
forall
[
R
plus
zero
minus
times
one
] .
(
implies
(
is_principal_ideal_domain
(
ring
(
R ,
plus ,
zero ,
minus ,
times ,
one )
)
,
is_Dedekind
(
ring
(
R ,
plus ,
zero ,
minus ,
times ,
one )
)
)
)
Popcorn
quant1.forall[$R, $plus, $zero, $minus, $times, $one -> order1.is_principal_ideal_domain(ring1.ring($R, $plus, $zero, $minus, $times, $one)) ==> order1.is_Dedekind(ring1.ring($R, $plus, $zero, $minus, $times, $one))]
Rendered Presentation MathML
∀
R
,
plus
,
zero
,
minus
,
times
,
one
.
is_principal_ideal_domain
(
ring
(
R
,
plus
,
zero
,
minus
,
times
,
one
)
)
⇒
is_Dedekind
(
ring
(
R
,
plus
,
zero
,
minus
,
times
,
one
)
)
Signatures:
sts
Role:
application
Description:
This symbol represents a boolean binary function. The first argument is a ring
R, the second is an element b of R. When evaluated on R and b, the function returns true if b is a nonzero divisor in R.
Commented Mathematical property (CMP):
if x is a non-zero divisor in the ring R then x is in R and x is different from zero and for all non-zero y in R, x*y is different from zero or y*x is different from zero.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="order1" name="is_nonzero_divisor"/>
<OMV name="R"/>
<OMV name="x"/>
</OMA>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="x"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="neq"/>
<OMV name="x"/>
<OMA>
<OMS cd="ring1" name="zero"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMBIND>
<OMS cd="quant1" name="forall"/>
<OMBVAR>
<OMV name="y"/>
</OMBVAR>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="y"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="neq"/>
<OMV name="y"/>
<OMA>
<OMS cd="ring1" name="zero"/>
<OMV name="R"/>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="logic1" name="or"/>
<OMA>
<OMS cd="relation1" name="neq"/>
<OMA>
<OMA>
<OMS cd="ring1" name="multiplication"/>
<OMV name="R"/>
</OMA>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA>
<OMS cd="ring1" name="zero"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="neq"/>
<OMA>
<OMA>
<OMS cd="ring1" name="multiplication"/>
<OMV name="R"/>
</OMA>
<OMV name="y"/>
<OMV name="x"/>
</OMA>
<OMA>
<OMS cd="ring1" name="zero"/>
<OMV name="R"/>
</OMA>
</OMA>
</OMA>
</OMA>
</OMBIND>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="order1">is_nonzero_divisor</csymbol><ci>R</ci><ci>x</ci></apply>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>x</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="relation1">neq</csymbol>
<ci>x</ci>
<apply><csymbol cd="ring1">zero</csymbol><ci>R</ci></apply>
</apply>
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>y</ci></bvar>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>y</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="relation1">neq</csymbol>
<ci>y</ci>
<apply><csymbol cd="ring1">zero</csymbol><ci>R</ci></apply>
</apply>
</apply>
<apply><csymbol cd="logic1">or</csymbol>
<apply><csymbol cd="relation1">neq</csymbol>
<apply>
<apply><csymbol cd="ring1">multiplication</csymbol><ci>R</ci></apply>
<ci>x</ci>
<ci>y</ci>
</apply>
<apply><csymbol cd="ring1">zero</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="relation1">neq</csymbol>
<apply>
<apply><csymbol cd="ring1">multiplication</csymbol><ci>R</ci></apply>
<ci>y</ci>
<ci>x</ci>
</apply>
<apply><csymbol cd="ring1">zero</csymbol><ci>R</ci></apply>
</apply>
</apply>
</apply>
</bind>
</apply>
</apply>
</math>
Prefix
implies
(
is_nonzero_divisor
(
R ,
x )
,
and
(
in
(
x ,
carrier
(
R )
)
,
neq
(
x ,
zero
(
R )
)
,
forall
[
y
] .
(
implies
(
and
(
in
(
y ,
carrier
(
R )
)
,
neq
(
y ,
zero
(
R )
)
)
,
or
(
neq
(
multiplication
(
R )
(
x ,
y )
,
zero
(
R )
)
,
neq
(
multiplication
(
R )
(
y ,
x )
,
zero
(
R )
)
)
)
)
)
)
Popcorn
order1.is_nonzero_divisor($R, $x) ==> set1.in($x, ring1.carrier($R)) and $x != ring1.zero($R) and quant1.forall[$y -> set1.in($y, ring1.carrier($R)) and $y != ring1.zero($R) ==> ring1.multiplication($R)($x, $y) != ring1.zero($R) > ring1.multiplication($R)($y, $x) != ring1.zero($R)]
Rendered Presentation MathML
is_nonzero_divisor
(
R
,
x
)
⇒
x
∈
carrier
(
R
)
∧
x
≠
zero
(
R
)
∧
∀
y
.
y
∈
carrier
(
R
)
∧
y
≠
zero
(
R
)
⇒
(
(
multiplication
(
R
)
)
(
x
,
y
)
≠
zero
(
R
)
)
∨
(
(
multiplication
(
R
)
)
(
y
,
x
)
≠
zero
(
R
)
)
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="is_nonzero_divisor"/>
<OMS cd="ringname1" name="Z"/>
<OMI>5</OMI>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">is_nonzero_divisor</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">5</cn>
</apply>
</math>
Prefix
Popcorn
order1.is_nonzero_divisor(ringname1.Z, 5)
Rendered Presentation MathML
is_nonzero_divisor
(
Z
,
5
)
Signatures:
sts
Role:
application
Description:
The unary boolean function whose value is true if and only if the argument is a principal ideal domain. R is a principal ideal domain if R is a commutative ring without zero divisors and if every ideal of R is a principal ideal.
Commented Mathematical property (CMP):
is_principal_ideal_domain(R) then for all a, b in R a*b=b*a and a different from zero in R then a is a non-zero divisor in R and I an ideal of R then there exists x in R such that I is the principal ideal generated by x in R.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="order1" name="is_principal_ideal_domain"/>
<OMV name="R"/>
</OMA>
<OMA>
<OMS cd="logic1" name="and"/>
<OMBIND>
<OMS cd="quant1" name="forall"/>
<OMBVAR>
<OMV name="a"/>
<OMV name="b"/>
</OMBVAR>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="a"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="b"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="eq"/>
<OMA>
<OMA>
<OMS cd="ring1" name="multiplication"/>
<OMV name="R"/>
</OMA>
<OMV name="a"/>
<OMV name="b"/>
</OMA>
<OMA>
<OMA>
<OMS cd="ring1" name="multiplication"/>
<OMV name="R"/>
</OMA>
<OMV name="b"/>
<OMV name="a"/>
</OMA>
</OMA>
</OMA>
</OMBIND>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="a"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
<OMA>
<OMS cd="relation1" name="neq"/>
<OMV name="a"/>
<OMA>
<OMS cd="ring1" name="zero"/>
<OMV name="R"/>
</OMA>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="order1" name="is_nonzero_divisor"/>
<OMV name="R"/>
<OMV name="a"/>
</OMA>
</OMA>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="ring3" name="is_ideal"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
<OMV name="I"/>
</OMA>
<OMA>
<OMS cd="logic1" name="and"/>
<OMBIND>
<OMS cd="quant1" name="exists"/>
<OMBVAR>
<OMV name="x"/>
</OMBVAR>
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="x"/>
<OMA>
<OMS cd="ring1" name="carrier"/>
<OMV name="R"/>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="eq"/>
<OMV name="I"/>
<OMA>
<OMS cd="ring3" name="principal_ideal"/>
<OMV name="R"/>
<OMV name="x"/>
</OMA>
</OMA>
</OMA>
</OMBIND>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="order1">is_principal_ideal_domain</csymbol><ci>R</ci></apply>
<apply><csymbol cd="logic1">and</csymbol>
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>a</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<ci>b</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
</apply>
</apply>
<apply><csymbol cd="relation1">eq</csymbol>
<apply>
<apply><csymbol cd="ring1">multiplication</csymbol><ci>R</ci></apply>
<ci>a</ci>
<ci>b</ci>
</apply>
<apply>
<apply><csymbol cd="ring1">multiplication</csymbol><ci>R</ci></apply>
<ci>b</ci>
<ci>a</ci>
</apply>
</apply>
</apply>
</bind>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>a</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
<apply><csymbol cd="relation1">neq</csymbol>
<ci>a</ci>
<apply><csymbol cd="ring1">zero</csymbol><ci>R</ci></apply>
</apply>
</apply>
</apply>
<apply><csymbol cd="order1">is_nonzero_divisor</csymbol><ci>R</ci><ci>a</ci></apply>
</apply>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="ring3">is_ideal</csymbol>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
<ci>I</ci>
</apply>
<apply><csymbol cd="logic1">and</csymbol>
<bind><csymbol cd="quant1">exists</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="set1">in</csymbol>
<ci>x</ci>
<apply><csymbol cd="ring1">carrier</csymbol><ci>R</ci></apply>
</apply>
<apply><csymbol cd="relation1">eq</csymbol>
<ci>I</ci>
<apply><csymbol cd="ring3">principal_ideal</csymbol><ci>R</ci><ci>x</ci></apply>
</apply>
</apply>
</bind>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
implies
(
is_principal_ideal_domain
(
R )
,
and
(
forall
[
a
b
] .
(
implies
(
and
(
in
(
a ,
carrier
(
R )
)
,
in
(
b ,
carrier
(
R )
)
)
,
eq
(
multiplication
(
R )
(
a ,
b )
,
multiplication
(
R )
(
b ,
a )
)
)
)
,
implies
(
and
(
in
(
a ,
carrier
(
R )
,
neq
(
a ,
zero
(
R )
)
)
)
,
is_nonzero_divisor
(
R ,
a )
)
,
implies
(
is_ideal
(
carrier
(
R )
,
I )
,
and
(
exists
[
x
] .
(
implies
(
in
(
x ,
carrier
(
R )
)
,
eq
(
I ,
principal_ideal
(
R ,
x )
)
)
)
)
)
)
)
Popcorn
order1.is_principal_ideal_domain($R) ==> quant1.forall[$a, $b -> set1.in($a, ring1.carrier($R)) and set1.in($b, ring1.carrier($R)) ==> ring1.multiplication($R)($a, $b) = ring1.multiplication($R)($b, $a)] and (set1.in($a, ring1.carrier($R), $a != ring1.zero($R)) ==> order1.is_nonzero_divisor($R, $a)) and (ring3.is_ideal(ring1.carrier($R), $I) ==> quant1.exists[$x -> set1.in($x, ring1.carrier($R)) ==> $I = ring3.principal_ideal($R, $x)])
Rendered Presentation MathML
is_principal_ideal_domain
(
R
)
⇒
∀
a
,
b
.
a
∈
carrier
(
R
)
∧
b
∈
carrier
(
R
)
⇒
(
multiplication
(
R
)
)
(
a
,
b
)
=
(
multiplication
(
R
)
)
(
b
,
a
)
∧
(
a
∈
carrier
(
R
)
⇒
is_nonzero_divisor
(
R
,
a
)
)
∧
(
is_ideal
(
carrier
(
R
)
,
I
)
⇒
∃
x
.
x
∈
carrier
(
R
)
⇒
I
=
principal_ideal
(
R
,
x
)
)
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="is_principal_ideal_domain"/>
<OMS cd="ringname1" name="Z"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML"><apply><csymbol cd="order1">is_principal_ideal_domain</csymbol><csymbol cd="ringname1">Z</csymbol></apply></math>
Prefix
Popcorn
order1.is_principal_ideal_domain(ringname1.Z)
Rendered Presentation MathML
is_principal_ideal_domain
(
Z
)
Signatures:
sts
Role:
application
Description:
This is a binary function, whose first argument is a Dedekind ring R and the second is a polynomial f. When applied to R and f, it returns an order of f over
the polynomial ring R: it is a ring A containing R, which is finitely generated R-module with no nilpotent non-zero ideal and as a R-module it is torsion-free.
Note that the result is not unique. Also this function allows to compute an order of a polynomial over another polynomial ring.
The idea behind this computation is to coerce f into the polynomial ring of R and then compute the order.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="order"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>3</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">order</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.order(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(3, 0))))
Rendered Presentation MathML
order
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
3
,
0
)
)
)
)
Signatures:
sts
Role:
application
Description:
This is a binary function, whose first argument is a Dedekind ring R and the second is a polynomial f. When applied to R and f, it returns the maximal order A among the orders of f (over the polynomial ring of R) in the quotient field of A.
Note that the result is unique.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="maximal_order"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>3</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">maximal_order</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.maximal_order(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(3, 0))))
Rendered Presentation MathML
maximal_order
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
3
,
0
)
)
)
)
Signatures:
sts
Role:
application
Description:
The unary boolean function whose value is true if and only if the argument is a maximal order.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="is_maximal_order"/>
<OMA>
<OMS cd="order1" name="maximal_order"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>3</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">is_maximal_order</csymbol>
<apply><csymbol cd="order1">maximal_order</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.is_maximal_order(order1.maximal_order(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(3, 0)))))
Rendered Presentation MathML
is_maximal_order
(
maximal_order
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
3
,
0
)
)
)
)
)
Signatures:
sts
Role:
application
Description:
This is a binary function. The first argument is an order O. The second argument should be a list L of elements of the Dedekind ring R, such that O is an order over the polynomial ring of R (cf. order). The length of L should be equal to the degree n of the polynomial generating the order O. When applied to O and L, it represents the element L[0] + L[1] b + L[2] b^2 + ... + L[n-1] b^(n-1) of O, where b stands for a primitive element of O.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="algebraic_integer"/>
<OMA>
<OMS cd="order1" name="order"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>3</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="list1" name="list"/>
<OMI>7</OMI>
<OMI>2</OMI>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">algebraic_integer</csymbol>
<apply><csymbol cd="order1">order</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
<apply><csymbol cd="list1">list</csymbol>
<cn type="integer">7</cn>
<cn type="integer">2</cn>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.algebraic_integer(order1.order(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(3, 0)))), [7 , 2])
Rendered Presentation MathML
algebraic_integer
(
order
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
3
,
0
)
)
)
)
,
(
7
,
2
)
)
Signatures:
sts
Role:
application
Description:
This symbol is a constructor for number fields. It takes two arguments in the following order: a ring R and a monic irreducible univariate polynomial f. If the ring R is Z (or Q), it returns the absolute number field. Otherwise it returns the relative number field over the number field whose ring of integers is R.
This symbol is intended to be used in upcoming CDs for e.g. describing discriminants of number fields,
or Galois groups, unit groups, class groups, regulators, etc.; all useful number theoretical notions.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="number_field"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS cd="polyd1" name="DMP"/>
<OMA>
<OMS cd="polyd1" name="poly_ring_d"/>
<OMS cd="ringname1" name="Z"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS cd="polyd1" name="term"/>
<OMI>2</OMI>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS cd="polyd1" name="term"/>
<OMI>0</OMI>
<OMI>1</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">number_field</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">2</cn>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">0</cn>
<cn type="integer">1</cn>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.number_field(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(2, 1), polyd1.term(0, 1))))
Rendered Presentation MathML
number_field
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
2
,
1
)
,
term
(
0
,
1
)
)
)
)
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS name="number_field" cd="order1"/>
<OMA>
<OMS name="ring_integers" cd="order1"/>
<OMA>
<OMS name="number_field" cd="order1"/>
<OMS name="Z" cd="setname1"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="setname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 1 </OMI>
<OMI> 2 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 2 </OMI>
<OMI> 0 </OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>3</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">number_field</csymbol>
<apply><csymbol cd="order1">ring_integers</csymbol>
<apply><csymbol cd="order1">number_field</csymbol>
<csymbol cd="setname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="setname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">2</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
number_field
(
ring_integers
(
number_field
(
Z ,
DMP
(
poly_ring_d
(
Z , 1)
,
SDMP
(
term
( 1 , 2 )
,
term
( 2 , 0 )
)
)
)
)
,
DMP
(
poly_ring_d
(
Z , 1)
,
SDMP
(
term
(1, 2)
,
term
(3, 0)
)
)
)
Popcorn
order1.number_field(order1.ring_integers(order1.number_field(setname1.Z, polyd1.DMP(polyd1.poly_ring_d(setname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(2, 0))))), polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(3, 0))))
Rendered Presentation MathML
number_field
(
ring_integers
(
number_field
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
2
,
0
)
)
)
)
)
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
3
,
0
)
)
)
)
Signatures:
sts
Role:
application
Description:
This is a binary function. The first argument is a number field F. The second argument should be a list L of elements of Q in case of an absolute number field F. Otherwise the second argument is a list L of elements of the number field whose ring of integers is the ring R over which F is defined (cf. number_field). The length of the list L should be equal to the degree n of F. When applied to F and L, it represents the element L[0] + L[1] b + L[2] b^2 + ... + L[n-1] ^(b-1) of F, where b stands for a primitive element of F.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="order1" name="algebraic_number"/>
<OMA>
<OMS cd="order1" name="order"/>
<OMS cd="ringname1" name="Z"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="ringname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI>1</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="list1" name="list"/>
<OMI>123</OMI>
<OMI>0</OMI>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">algebraic_number</csymbol>
<apply><csymbol cd="order1">order</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="ringname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
<apply><csymbol cd="list1">list</csymbol>
<cn type="integer">123</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.algebraic_number(order1.order(ringname1.Z, polyd1.DMP(polyd1.poly_ring_d(ringname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(1, 0))), [123 , 0]))
Rendered Presentation MathML
algebraic_number
(
order
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
1
,
0
)
)
)
,
(
123
,
0
)
)
)
Signatures:
sts
Role:
application
Description:
This is a unary function, whose argument is a number field K. When applied to K, it returns the ring of integers of K. It is the Dedekind ring of K.
Commented Mathematical property (CMP):
if A is the ring of integers of the number field K then A is a subring of K and A is a Dedekind ring.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="relation1" name="eq"/>
<OMV name="A"/>
<OMA>
<OMS cd="order1" name="ring_integers"/>
<OMV name="K"/>
</OMA>
</OMA>
<OMA>
<OMS cd="logic1" name="and"/>
<OMA>
<OMS cd="ring1" name="is_subring"/>
<OMV name="K"/>
<OMV name="A"/>
</OMA>
<OMA>
<OMS cd="order1" name="is_Dedekind"/>
<OMV name="A"/>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="relation1">eq</csymbol>
<ci>A</ci>
<apply><csymbol cd="order1">ring_integers</csymbol><ci>K</ci></apply>
</apply>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="ring1">is_subring</csymbol><ci>K</ci><ci>A</ci></apply>
<apply><csymbol cd="order1">is_Dedekind</csymbol><ci>A</ci></apply>
</apply>
</apply>
</math>
Prefix
Popcorn
$A = order1.ring_integers($K) ==> ring1.is_subring($K, $A) and order1.is_Dedekind($A)
Rendered Presentation MathML
A
=
ring_integers
(
K
)
⇒
is_subring
(
K
,
A
)
∧
is_Dedekind
(
A
)
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS name="ring_integers" cd="order1"/>
<OMA>
<OMS name="number_field" cd="order1"/>
<OMS name="Z" cd="setname1"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="setname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 1 </OMI>
<OMI> 2 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 2 </OMI>
<OMI> 0 </OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">ring_integers</csymbol>
<apply><csymbol cd="order1">number_field</csymbol>
<csymbol cd="setname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="setname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">2</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.ring_integers(order1.number_field(setname1.Z, polyd1.DMP(polyd1.poly_ring_d(setname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(2, 0)))))
Rendered Presentation MathML
ring_integers
(
number_field
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
2
,
0
)
)
)
)
)
Signatures:
sts
Role:
application
Description:
This is a unary function, whose argument is a number field K. It returns a primitive element of K. Note that the result is not unique.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd">
<OMA>
<OMS name="primitive_element" cd="order1"/>
<OMA>
<OMS name="number_field" cd="order1"/>
<OMS name="Z" cd="setname1"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Z" cd="setname1"/>
<OMI>1</OMI>
</OMA>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 1 </OMI>
<OMI> 2 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 2 </OMI>
<OMI> 0 </OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="order1">primitive_element</csymbol>
<apply><csymbol cd="order1">number_field</csymbol>
<csymbol cd="setname1">Z</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="setname1">Z</csymbol>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">2</cn>
<cn type="integer">0</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
order1.primitive_element(order1.number_field(setname1.Z, polyd1.DMP(polyd1.poly_ring_d(setname1.Z, 1), polyd1.SDMP(polyd1.term(1, 2), polyd1.term(2, 0)))))
Rendered Presentation MathML
primitive_element
(
number_field
(
Z
,
DMP
(
poly_ring_d
(
Z
,
1
)
,
SDMP
(
term
(
1
,
2
)
,
term
(
2
,
0
)
)
)
)
)
Signatures:
sts