OpenMath Content Dictionary: fns3
Canonical URL:
http://www.openmath.org/cd/fns3.ocd
CD Base:
http://www.openmath.org/cd
CD File:
fns3.ocd
CD as XML Encoded OpenMath:
fns3.omcd
Defines:
function , specification
Date:
2004-06-01
Version:
1
(Revision 1)
Review Date:
2006-06-01
Status:
experimental
This CD holds further functions concerning functions themselves. A
particularly interesting function is
function
which constructs a function with given domain and range.
Description:
This symbol denotes a function constructor.
When aplied to at least two arguments, which are sets,
the first argument is the domain and the second the range of the function.
When applied to at least three arguments, the first two of which are
stes and the third of which is a lambda expression,
the third argument gives the function specification.
Commented Mathematical property (CMP):
The domain of the function f constructed this way is the first argument
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="fns1" name="domain"/>
<OMA><OMS cd="fns3" name="function"/>
<OMV name="X"/> <OMV name="Y"/> <OMV name="Z"/>
</OMA>
</OMA>
<OMV name="X"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="fns1">domain</csymbol>
<apply><csymbol cd="fns3">function</csymbol><ci>X</ci><ci>Y</ci><ci>Z</ci></apply>
</apply>
<ci>X</ci>
</apply>
</math>
Prefix
Popcorn
fns1.domain(fns3.function($X, $Y, $Z)) = $X
Rendered Presentation MathML
domain
(
function
(
X
,
Y
,
Z
)
)
=
X
Commented Mathematical property (CMP):
The range of the function f constructed this way is the second argument
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="fns1" name="range"/>
<OMA><OMS cd="fns3" name="function"/>
<OMV name="X"/> <OMV name="Y"/> <OMV name="Z"/>
</OMA>
</OMA>
<OMV name="Y"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="fns1">range</csymbol>
<apply><csymbol cd="fns3">function</csymbol><ci>X</ci><ci>Y</ci><ci>Z</ci></apply>
</apply>
<ci>Y</ci>
</apply>
</math>
Prefix
Popcorn
fns1.range(fns3.function($X, $Y, $Z)) = $Y
Rendered Presentation MathML
range
(
function
(
X
,
Y
,
Z
)
)
=
Y
Example:
The following object defines a function from the natural numbers into
the integers specificied by the fact that n maps to n(n+1)/2.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="fns3" name="function"/>
<OMS cd="setname1" name="N"/>
<OMS cd="setname1" name="Z"/>
<OMBIND><OMS cd="fns1" name="lambda"/>
<OMBVAR><OMV name="n"/></OMBVAR>
<OMA><OMS cd="arith1" name="divide"/>
<OMA><OMS cd="arith1" name="times"/>
<OMV name="n"/>
<OMA><OMS cd="arith1" name="plus"/>
<OMV name="n"/>
<OMI> 1 </OMI>
</OMA>
</OMA>
<OMI> 2 </OMI>
</OMA>
</OMBIND>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="fns3">function</csymbol>
<csymbol cd="setname1">N</csymbol>
<csymbol cd="setname1">Z</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>n</ci></bvar>
<apply><csymbol cd="arith1">divide</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>n</ci>
<apply><csymbol cd="arith1">plus</csymbol><ci>n</ci><cn type="integer">1</cn></apply>
</apply>
<cn type="integer">2</cn>
</apply>
</bind>
</apply>
</math>
Prefix
Popcorn
fns3.function(setname1.N, setname1.Z, fns1.lambda[$n -> ($n * ($n + 1)) / 2])
Rendered Presentation MathML
function
(
N
,
Z
,
λ
n
.
n
(
n
+
1
)
2
)
Signatures:
sts
Description:
This symbol denotes the specification of a function.
It is a unary function.
When aplied to its argument, which should be a function applied to
three arguments, it returns the third argument of the function, that is,
the function specification.
Formal Mathematical property (FMP):
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="fns3" name="specification"/>
<OMA><OMS cd="fns3" name="function"/>
<OMS cd="setname1" name="N"/>
<OMS cd="setname1" name="Z"/>
<OMV name="f"/>
</OMA>
</OMA>
<OMV name="f"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="fns3">specification</csymbol>
<apply><csymbol cd="fns3">function</csymbol>
<csymbol cd="setname1">N</csymbol>
<csymbol cd="setname1">Z</csymbol>
<ci>f</ci>
</apply>
</apply>
<ci>f</ci>
</apply>
</math>
Prefix
Popcorn
fns3.specification(fns3.function(setname1.N, setname1.Z, $f)) = $f
Rendered Presentation MathML
specification
(
function
(
N
,
Z
,
f
)
)
=
f
Example:
The following object defines a function from the natural numbers into
the integers specificied by the fact that n maps to n(n+1)/2.
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS cd="relation1" name="eq"/>
<OMA><OMS cd="fns3" name="specification"/>
<OMA><OMS cd="fns3" name="function"/>
<OMS cd="setname1" name="N"/>
<OMS cd="setname1" name="Z"/>
<OMBIND><OMS cd="fns1" name="lambda"/>
<OMBVAR><OMV name="n"/></OMBVAR>
<OMA><OMS cd="arith1" name="divide"/>
<OMA><OMS cd="arith1" name="times"/>
<OMV name="n"/>
<OMA><OMS cd="arith1" name="plus"/>
<OMV name="n"/>
<OMI> 1 </OMI>
</OMA>
</OMA>
<OMI> 2 </OMI>
</OMA>
</OMBIND>
</OMA>
</OMA>
<OMBIND><OMS cd="fns1" name="lambda"/>
<OMBVAR><OMV name="n"/></OMBVAR>
<OMA><OMS cd="arith1" name="divide"/>
<OMA><OMS cd="arith1" name="times"/>
<OMV name="n"/>
<OMA><OMS cd="arith1" name="plus"/>
<OMV name="n"/>
<OMI> 1 </OMI>
</OMA>
</OMA>
<OMI> 2 </OMI>
</OMA>
</OMBIND>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="fns3">specification</csymbol>
<apply><csymbol cd="fns3">function</csymbol>
<csymbol cd="setname1">N</csymbol>
<csymbol cd="setname1">Z</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>n</ci></bvar>
<apply><csymbol cd="arith1">divide</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>n</ci>
<apply><csymbol cd="arith1">plus</csymbol><ci>n</ci><cn type="integer">1</cn></apply>
</apply>
<cn type="integer">2</cn>
</apply>
</bind>
</apply>
</apply>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>n</ci></bvar>
<apply><csymbol cd="arith1">divide</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>n</ci>
<apply><csymbol cd="arith1">plus</csymbol><ci>n</ci><cn type="integer">1</cn></apply>
</apply>
<cn type="integer">2</cn>
</apply>
</bind>
</apply>
</math>
Prefix
Popcorn
fns3.specification(fns3.function(setname1.N, setname1.Z, fns1.lambda[$n -> ($n * ($n + 1)) / 2])) = fns1.lambda[$n -> ($n * ($n + 1)) / 2]
Rendered Presentation MathML
specification
(
function
(
N
,
Z
,
λ
n
.
n
(
n
+
1
)
2
)
)
=
λ
n
.
n
(
n
+
1
)
2
Signatures:
sts