OpenMath Content Dictionary: magma1
Canonical URL:
http://www.openmath.org/cd/magma1.ocd
CD Base:
http://www.openmath.org/cd
CD File:
magma1.ocd
CD as XML Encoded OpenMath:
magma1.omcd
Defines:
is_identity , multiplication , carrier , is_associative , is_commutative , is_submagma , left_divides , left_expression , magma , right_divides , right_expression , submagma
Date:
2004-06-01
Version:
1
(Revision 2)
Review Date:
2006-06-01
Status:
experimental
Basic functions for magma theory
Initiated by Arjeh M. Cohen 2003-10-03
Edited by AMC 2004-0302
Description:
This symbol is a constructor for magmas. It takes two arguments in
the following order: a set to specify the elements in the magma and a
binary operation to specify the magma operation.
The binary operation should act on elements
of the set and return an element of the set.
Commented Mathematical property (CMP):
A magma is closed under its operation.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="logic1" name="implies"/>
<OMA><OMS cd="relation1" name="eq"/>
<OMV name="G"/>
<OMA><OMS cd="magma1" name="magma"/>
<OMV name="set"/>
<OMV name="binop"/>
</OMA>
</OMA>
<OMA><OMS cd="logic1" name="implies"/>
<OMA><OMS cd="logic1" name="and"/>
<OMA><OMS cd="set1" name="in"/>
<OMV name="x"/><OMV name="set"/>
</OMA>
<OMA><OMS cd="set1" name="in"/>
<OMV name="y"/><OMV name="set"/>
</OMA>
</OMA>
<OMA><OMS cd="set1" name="in"/>
<OMA><OMV name="binop"/>
<OMV name="x"/><OMV name="y"/>
</OMA>
<OMV name="set"/>
</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>G</ci>
<apply><csymbol cd="magma1">magma</csymbol><ci>set</ci><ci>binop</ci></apply>
</apply>
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="set1">in</csymbol><ci>x</ci><ci>set</ci></apply>
<apply><csymbol cd="set1">in</csymbol><ci>y</ci><ci>set</ci></apply>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<apply><ci>binop</ci><ci>x</ci><ci>y</ci></apply>
<ci>set</ci>
</apply>
</apply>
</apply>
</math>
Prefix
Popcorn
$G = magma1.magma($set, $binop) ==> set1.in($x, $set) and set1.in($y, $set) ==> set1.in($binop($x, $y), $set)
Rendered Presentation MathML
G
=
magma
(
set
,
binop
)
⇒
x
∈
set
∧
y
∈
set
⇒
binop
(
x
,
y
)
∈
set
Example:
This example represents the magma which has as elements all integers,
and the magma operation is addition of the square of the first
argument to the second.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="magma1" name="magma"/>
<OMS cd="setname1" name="Z"/>
<OMBIND><OMS cd="fns1" name="lambda"/>
<OMBVAR><OMV name="x"/><OMV name="y"/></OMBVAR>
<OMA><OMS cd="arith1" name="plus"/>
<OMA><OMS cd="arith1" name="power"/>
<OMV name="x"/> <OMI>2</OMI>
</OMA>
<OMV name="y"/>
</OMA>
</OMBIND>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="magma1">magma</csymbol>
<csymbol cd="setname1">Z</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><csymbol cd="arith1">plus</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn type="integer">2</cn></apply>
<ci>y</ci>
</apply>
</bind>
</apply>
</math>
Prefix
Popcorn
magma1.magma(setname1.Z, fns1.lambda[$x, $y -> $x ^ 2 + $y])
Rendered Presentation MathML
magma
(
Z
,
λ
x
,
y
.
x
2
+
y
)
Signatures:
sts
Description:
This symbol represents a unary function, whose argument should be a
magma G (for instance constructed by magma).
When applied to G, its value should be the set of elements of a magma.
Example:
The carrier of magma(G,*) is G.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="magma1" name="carrier"/>
<OMA><OMS cd="magma1" name="magma"/>
<OMV name="G"/> <OMV name="times"/>
</OMA>
</OMA>
<OMV name="G"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="magma1">carrier</csymbol>
<apply><csymbol cd="magma1">magma</csymbol><ci>G</ci><ci>times</ci></apply>
</apply>
<ci>G</ci>
</apply>
</math>
Prefix
Popcorn
magma1.carrier(magma1.magma($G, $times)) = $G
Rendered Presentation MathML
carrier
(
magma
(
G
,
times
)
)
=
G
Signatures:
sts
Description:
This symbol
represents a unary function, whose argument should be a magma G. It returns
the multiplication map on G. We allow for the map to be n-ary.
Example:
The multiplication of magma(G,*) is *.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="magma1" name="multiplication"/>
<OMA><OMS cd="group1" name="group"/>
<OMV name="G"/>
<OMV name="times"/>
</OMA>
</OMA>
<OMV name="times"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="magma1">multiplication</csymbol>
<apply><csymbol cd="group1">group</csymbol><ci>G</ci><ci>times</ci></apply>
</apply>
<ci>times</ci>
</apply>
</math>
Prefix
Popcorn
magma1.multiplication(group1.group($G, $times)) = $times
Rendered Presentation MathML
multiplication
(
group
(
G
,
times
)
)
=
times
Signatures:
sts
Description:
The unary boolean function whose value is true iff the argument is a
commutative magma.
Commented Mathematical property (CMP):
If is_commutative(G) then for all a,b in carrier(G) a*b = b*a
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA>
<OMS cd="logic1" name="implies"/>
<OMA>
<OMS cd="magma1" name="is_commutative"/>
<OMV name="G"/>
</OMA>
<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="magma1" name="carrier"/>
<OMV name="G"/>
</OMA>
</OMA>
<OMA>
<OMS cd="set1" name="in"/>
<OMV name="b"/>
<OMA>
<OMS cd="magma1" name="carrier"/>
<OMV name="G"/>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="relation1" name="eq"/>
<OMA>
<OMA>
<OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMV name="a"/>
<OMV name="b"/>
</OMA>
<OMA>
<OMA>
<OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMV name="b"/>
<OMV name="a"/>
</OMA>
</OMA>
</OMA>
</OMBIND>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="magma1">is_commutative</csymbol><ci>G</ci></apply>
<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="magma1">carrier</csymbol><ci>G</ci></apply>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<ci>b</ci>
<apply><csymbol cd="magma1">carrier</csymbol><ci>G</ci></apply>
</apply>
</apply>
<apply><csymbol cd="relation1">eq</csymbol>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<ci>a</ci>
<ci>b</ci>
</apply>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<ci>b</ci>
<ci>a</ci>
</apply>
</apply>
</apply>
</bind>
</apply>
</math>
Prefix
Popcorn
magma1.is_commutative($G) ==> quant1.forall[$a, $b -> set1.in($a, magma1.carrier($G)) and set1.in($b, magma1.carrier($G)) ==> magma1.multiplication($G)($a, $b) = magma1.multiplication($G)($b, $a)]
Rendered Presentation MathML
is_commutative
(
G
)
⇒
∀
a
,
b
.
a
∈
carrier
(
G
)
∧
b
∈
carrier
(
G
)
⇒
(
multiplication
(
G
)
)
(
a
,
b
)
=
(
multiplication
(
G
)
)
(
b
,
a
)
Signatures:
sts
Description:
The unary boolean function whose value is true iff the argument is an
associative magma.
Commented Mathematical property (CMP):
If is_associative(G) then for all a,b in carrier(G) (a*b) * c = a*(b*c)
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="logic1" name="implies"/>
<OMA><OMS cd="magma1" name="is_associative"/>
<OMV name="G"/>
</OMA>
<OMBIND><OMS cd="quant1" name="forall"/>
<OMBVAR> <OMV name="a"/> <OMV name="b"/><OMV name="c"/>
</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="magma1" name="carrier"/>
<OMV name="G"/>
</OMA>
</OMA>
<OMA><OMS cd="set1" name="in"/>
<OMV name="b"/>
<OMA><OMS cd="magma1" name="carrier"/>
<OMV name="G"/>
</OMA>
</OMA>
<OMA><OMS cd="set1" name="in"/>
<OMV name="c"/>
<OMA><OMS cd="magma1" name="carrier"/>
<OMV name="G"/>
</OMA>
</OMA>
</OMA>
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMA><OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMA><OMA><OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMV name="a"/>
<OMV name="b"/>
</OMA>
<OMV name="c"/>
</OMA>
<OMA><OMA><OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMV name="a"/>
<OMA><OMA><OMS cd="magma1" name="multiplication"/>
<OMV name="G"/>
</OMA>
<OMV name="b"/>
<OMV name="c"/>
</OMA>
</OMA>
</OMA>
</OMA>
</OMBIND>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="logic1">implies</csymbol>
<apply><csymbol cd="magma1">is_associative</csymbol><ci>G</ci></apply>
<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<bvar><ci>c</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="magma1">carrier</csymbol><ci>G</ci></apply>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<ci>b</ci>
<apply><csymbol cd="magma1">carrier</csymbol><ci>G</ci></apply>
</apply>
<apply><csymbol cd="set1">in</csymbol>
<ci>c</ci>
<apply><csymbol cd="magma1">carrier</csymbol><ci>G</ci></apply>
</apply>
</apply>
<apply><csymbol cd="relation1">eq</csymbol>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<ci>a</ci>
<ci>b</ci>
</apply>
<ci>c</ci>
</apply>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<ci>a</ci>
<apply>
<apply><csymbol cd="magma1">multiplication</csymbol><ci>G</ci></apply>
<ci>b</ci>
<ci>c</ci>
</apply>
</apply>
</apply>
</apply>
</bind>
</apply>
</math>
Prefix
implies
(
is_associative
(
G )
,
forall
[
a
b
c
] .
(
implies
(
and
(
in
(
a ,
carrier
(
G )
)
,
in
(
b ,
carrier
(
G )
)
,
in
(
c ,
carrier
(
G )
)
)
,
eq
(
multiplication
(
G )
(
multiplication
(
G )
(
a ,
b )
,
c )
,
multiplication
(
G )
(
a ,
multiplication
(
G )
(
b ,
c )
)
)
)
)
)
Popcorn
magma1.is_associative($G) ==> quant1.forall[$a, $b, $c -> set1.in($a, magma1.carrier($G)) and set1.in($b, magma1.carrier($G)) and set1.in($c, magma1.carrier($G)) ==> magma1.multiplication($G)(magma1.multiplication($G)($a, $b), $c) = magma1.multiplication($G)($a, magma1.multiplication($G)($b, $c))]
Rendered Presentation MathML
is_associative
(
G
)
⇒
∀
a
,
b
,
c
.
a
∈
carrier
(
G
)
∧
b
∈
carrier
(
G
)
∧
c
∈
carrier
(
G
)
⇒
(
multiplication
(
G
)
)
(
(
multiplication
(
G
)
)
(
a
,
b
)
,
c
)
=
(
multiplication
(
G
)
)
(
a
,
(
multiplication
(
G
)
)
(
b
,
c
)
)
Signatures:
sts
Description:
The binary boolean function whose value is true iff the second
argument is a submagma of the first.
Commented Mathematical property (CMP):
If is_submagma(G,H) then H is a set of elements of G and H
is closed under multiplication.
Signatures:
sts
Description:
This symbols represents a binary boolean function, whose
arguments should be a magma and an element of the element set of the
magma. When applied to the arguments M and x, it returns true if the
element x is an identity of the magma M, that is, x*y = y* x = y for
all elements y of M.
Signatures:
sts
Description:
This symbol is a constructor symbol with two arguments.
The first argument is a magma M,
the second a list or set, D, of elements of M.
When applied to M and D, it denotes the submagma of M generated by D.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="magma1" name="submagma"/>
<OMV name="M"/> <OMV name="D"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML"><apply><csymbol cd="magma1">submagma</csymbol><ci>M</ci><ci>D</ci></apply></math>
Prefix
Popcorn
magma1.submagma($M, $D)
Rendered Presentation MathML
Example:
This example represents the submagma of the multiplicative magma of
the nonzero reals generated by the constants Pi and E:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="magma1" name="magma"/>
<OMA><OMS cd="magma1" name="magma"/>
<OMA><OMS cd="set1" name="suchthat"/>
<OMS cd="setname1" name="R"/>
<OMBIND><OMS cd="fns1" name="lambda"/>
<OMBVAR> <OMV name="x"/>
</OMBVAR>
<OMA><OMS cd="relation1" name="neq"/>
<OMV name="x"/>
<OMS cd="alg1" name="zero"/>
</OMA>
</OMBIND>
</OMA>
<OMS cd="arith1" name="times"/>
</OMA>
<OMA>
<OMS cd="list1" name="list"/>
<OMS cd="nums1" name="pi"/>
<OMS cd="nums1" name="e"/>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="magma1">magma</csymbol>
<apply><csymbol cd="magma1">magma</csymbol>
<apply><csymbol cd="set1">suchthat</csymbol>
<csymbol cd="setname1">R</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">neq</csymbol><ci>x</ci><csymbol cd="alg1">zero</csymbol></apply>
</bind>
</apply>
<csymbol cd="arith1">times</csymbol>
</apply>
<apply><csymbol cd="list1">list</csymbol>
<csymbol cd="nums1">pi</csymbol>
<csymbol cd="nums1">e</csymbol>
</apply>
</apply>
</math>
Prefix
Popcorn
magma1.magma(magma1.magma(set1.suchthat(setname1.R, fns1.lambda[$x -> $x != alg1.zero]), arith1.times), [nums1.pi , nums1.e])
Rendered Presentation MathML
magma
(
magma
(
{
x
∈
R
|
x
≠
0
}
,
×
)
,
(
π
,
e
)
)
Signatures:
sts
Description:
This symbol is a ternary function. Its first argument should be a
magma M and the second and third arguments should be elements of M.
When applied to M, a, and b, it denotes the fact that a is a
left_divisor of b in M. This means that there is v in M such that av=b.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="magma1" name="left_divides"/>
<OMV name="M"/><OMV name="a"/><OMV name="b"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="magma1">left_divides</csymbol><ci>M</ci><ci>a</ci><ci>b</ci></apply>
</math>
Prefix
Popcorn
magma1.left_divides($M, $a, $b)
Rendered Presentation MathML
left_divides
(
M
,
a
,
b
)
Signatures:
sts
Description:
This symbol is a ternary function.
Its first argument should be a magma M and the second and third
arguments
should be elements of M.
When applied to M, a, and b, it denotes the fact that a is a right_divisor of b in
M. This means that there is v in M such that va = b.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="magma1" name="right_divides"/>
<OMV name="M"/> <OMV name="a"/> <OMV name="b"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="magma1">right_divides</csymbol><ci>M</ci><ci>a</ci><ci>b</ci></apply>
</math>
Prefix
Popcorn
magma1.right_divides($M, $a, $b)
Rendered Presentation MathML
right_divides
(
M
,
a
,
b
)
Signatures:
sts
Description:
This symbol is a binary function.
Its first argument should be a magma M, the second argument
a list L of elements of M.
When applied to M and L, it denotes the left product
(L[1] * ( ... (L[n-1] * L[n]) ... )) of all elements in the list L.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="magma1" name="left_expression"/>
<OMA><OMS cd="magma1" name="magma"/>
<OMS cd="setname1" name="Z"/>
<OMS cd="arith1" name="times"/>
</OMA>
<OMA><OMS cd="list1" name="list"/>
<OMI>3</OMI><OMI>2</OMI>
</OMA>
</OMA>
<OMI>6</OMI>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="magma1">left_expression</csymbol>
<apply><csymbol cd="magma1">magma</csymbol>
<csymbol cd="setname1">Z</csymbol>
<csymbol cd="arith1">times</csymbol>
</apply>
<apply><csymbol cd="list1">list</csymbol>
<cn type="integer">3</cn>
<cn type="integer">2</cn>
</apply>
</apply>
<cn type="integer">6</cn>
</apply>
</math>
Prefix
Popcorn
magma1.left_expression(magma1.magma(setname1.Z, arith1.times), [3 , 2]) = 6
Rendered Presentation MathML
left_expression
(
magma
(
Z
,
×
)
,
(
3
,
2
)
)
=
6
Signatures:
sts
Description:
This symbol is a binary function.
Its first argument should be a magma M, the second argument a list L of elements of M
When applied to M and L, it denotes the right product
(( ... (L[1] * L[2]) * ... ) * L[n]) of all elements in the list L.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="magma1" name="right_expression"/>
<OMA><OMS cd="magma1" name="magma"/>
<OMS cd="setname1" name="Z"/>
<OMS cd="arith1" name="times"/>
</OMA>
<OMA><OMS cd="list1" name="list"/>
<OMI>3</OMI><OMI>2</OMI>
</OMA>
</OMA>
<OMI>6</OMI>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="magma1">right_expression</csymbol>
<apply><csymbol cd="magma1">magma</csymbol>
<csymbol cd="setname1">Z</csymbol>
<csymbol cd="arith1">times</csymbol>
</apply>
<apply><csymbol cd="list1">list</csymbol>
<cn type="integer">3</cn>
<cn type="integer">2</cn>
</apply>
</apply>
<cn type="integer">6</cn>
</apply>
</math>
Prefix
Popcorn
magma1.right_expression(magma1.magma(setname1.Z, arith1.times), [3 , 2]) = 6
Rendered Presentation MathML
right_expression
(
magma
(
Z
,
×
)
,
(
3
,
2
)
)
=
6
Signatures:
sts