This CD defines symbols for 3-dimensional Euclidean geometry
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org.
The symbol is used to indicate a circle in 3-dimensional Euclidean geometry by a variable. The circle may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
The circle c with center at A and passing through the point B is given by:
The symbol is used to indicate the set of the two endpoints of a segment in 3-dimensional Euclidean geometry by a variable. The symbol takes the variable as the first argument and the segment as second argument.
The set E of the two endpoints of a segment s is given by:
The symbol is used to indicate a line of 3-dimensional Euclidean geometry by a variable. The line may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
Given points A and B in 3-dimensional space, a line l through A and B is defined by:
The symbol is used to indicate the midpoint of a segment in 3-dimensional Euclidean geometry by a variable. The symbol takes the variable as the first argument and the segment as second argument.
The midpoint M of the segment s is given by
The symbol is used to indicate a plane in 3-dimensional Euclidean geometry by a variable. The plane may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
Given points A, B and C in 3-dimensional space, a plane p through A, B and C is defined by:
The symbol is used to indicate a point of 3-dimensional Euclidean geometry by a variable. The point may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
Given two lines l and m, a point A on l and m is defined by:
The symbol is used to indicate a segment of a line in 3-dimensional Euclidean geometry by a variable. The segment is contained in the affine part of the line. The symbol takes the variable as the first argument and the endpoints as second and third arguments.
The segment s with endpoints A and B is given by
The symbol is used to indicate a sphere in 3-dimensional Euclidean geometry by a variable. The sphere may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
The sphere s with center at A and passing through the point B is given by:
The symbol is a boolean n-ary function. Its arguments should be points. When applied to a sequence of points in 3-dimensional Euclidean space, its evaluated to true if and only if there is a line on which all arguments lie.
This example states that the points A, B, C, and D are collinear.
The symbol is a boolean n-ary function. Its arguments should be points. When applied to a sequence of points in 3-dimensional Euclidean space, its evaluated to true if and only if there is a plane on which all arguments lie.
This example states that the points A, B, C, and D are coplanar.
The statement that a circle in 3-dimensional Euclidean space has a given point as center. Takes the circle as first argument and the point as second argument.
The symbol represents the logical incidence function which is a binary function taking arguments representing geometric objects like points and lines and returning a boolean value. It is true if and only if the first argument is incident to the second.
That a point A is incident to a line l is given by:
The statement that one point is the midpoint of two others.
This example states that C is the midpoint of A and B.
The symbol represents a binary boolean function with input two lines or segments. Its value is true whenever the first argument is parallel to the second.
This example states that the lines l and m are parallel.
The symbol represents a binary boolean function with a line as first argument and a plane as second argument. Its value is true whenever the first argument is normal to the second.
This example states that the line l is normal to the plane p.
The symbol represents a binary boolean function with input two lines or segments. Its value is true whenever the first argument is perpendicular to the second.
This example states that the lines l and m are perpendicular.
The symbol represents a binary boolean function with input two planes. Its value is true whenever the first argument is parallel to the second.
This example states that the planes m and n are parallel.
The statement that a sphere in 3-dimensional Euclidean space has a given point as center. Takes the sphere as first argument and the point as second argument.
This CD defines symbols which represent five fundamental physical constants and the Planck units that they define.
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. Author: Joseph B. Collins (2009), Naval Research Laboratory, Washington, DC. Copyright Notice: This is a work of the U.S. Government and is not subject to copyright protection in the United States. Foreign copyrights may apply.
The Boltzmann constant relates energy at the particle level with temperature observed at the bulk level via the ideal gas law, pV = NkT. By measurement it is found to be approximately equal to 1.3806504(24)*10^(-23) joule per kelvin. It is commonly represented with the short, italic symbol, "k".
The value of the Coulomb constant is implied by international definitions of the speed of light and the vacuum permeability. By definition, its exact value is equal to (299,792,458)^2 * 10^-7 N m^2 C^-2. It is commonly represented with the short, italic symbol, "k" subscripted with the upright letter "e".
The Planck charge is defined to be sqrt(h-bar*c*4*pi*eps0). Its value derived from measurement is 1.875545870(47) * 10^−18 coulomb. It is commonly represented with the short, italic symbol, "q", subscripted with an upright capital "P".
This symbol represents the fundamental constant equal to the ratio of the energy of a photon to its frequency. By measurement it is found to be approximately equal to 6.62606896(33)*10^(-34) J s [CODATA 2006]. It is commonly represented with the short, italic symbol, "h".
The Planck length is defined to be sqrt(h-bar*G/(c^3)). Its value derived from measurement is 1.616252(81) * 10^−35 metre. It is commonly represented with the short, italic symbol, "l", subscripted with an upright capital "P".
The Planck mass is defined to be sqrt(h-bar*c/G). Its value derived from measurement is 2.17644(11) * 10^−8 kilogram. It is commonly represented with the short, italic symbol, "m", subscripted with an upright capital "P".
The Planck temperature is defined to be sqrt(h-bar*c^5/(G*k^3)). Its value derived from measurement is 1.416785(71) × 10^32 kelvin. It is commonly represented with the short, italic symbol, "T", subscripted with an upright capital "P".
The Planck time is defined to be sqrt(h-bar*G/(c^5)). Its value derived from measurement is 5.39124(27) * 10^−44 second. It is commonly represented with the short, italic symbol, "t", subscripted with an upright capital "P".
G ~ 6.6742(10)*10^-11 newton metre^2 per kilogram^2
This symbol represents the constant of proportionality in Newton's law of universal gravitation. By measurement it is found to be approximately equal to 6.6742(10)*10^-11 newton metre^2 per kilogram^2. It is commonly represented with the short, italic symbol, "G".
This symbol represents the Planck constant divided by 2*pi. It is commonly represented with the short, italic symbol, h with a horizontal bar ("h-bar"), Unicode: U+210F , HTML: ℏ.
The speed of light is 299,792,458 metre per second
This symbol represents the speed of light in a vacuum. Its value is implied by the definition of the metre [17th CGPM (1983)]. Consequently, the speed of light is defined to be exactly 299,792,458 metre per second (in the SI). It is commonly represented with the short, italic symbol, "c".
This CD defines symbols to represent units that are off-system with respect to the SI system of units, but are retained for use with the SI. Each unit is determined by experimental measurement. (DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1 - "Quantities and units", 2008).
1 astronomical unit ~ 1.49597870691 * 10^11 metre
This symbol represents the measure of one astronomical unit of distance. It has the short symbol form, "ua". It is the mean distance between the sun and the earth. Its measured value is 1 ua = 1.49597870691(6) * 10^11 m [DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1, International Organization for Standardization, 2008]
This symbol represents the measure of one dalton of mass. It has the short symbol form, "Da". The dalton is one-twelth the mass of an atom of Carbon-12 at rest and in its ground state. Its measured value is 1 Da = 1.660538782(83) * 10^–27 kg [CODATA 2006]
This symbol represents the measure of one electronvolt of energy. It has the short symbol form, "eV". It is the kinetic energy acquired by an electron in passing through a potential difference of 1 volt in a vacuum. Its measured value is 1 eV = 1.602176487(40) * 10^–19 J [CODATA 2006]
This CD defines symbols to represent units that are off-system with respect to the SI system of units, but are retained for use with the SI. (DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1 - "Quantities and units", 2008).
This symbol represents the dimensionless measure of one bel. It has the short symbol form, "B".
This symbol represents the measure of one day of time. It has the short symbol form, "d".
This symbol represents the angular measure of one degree of arc. It has the short symbol form of the degree symbol, a superscript circle, Unicode: U+00B0 or HTML: °.
This symbol represents the measure of one hour of time. It has the short symbol form, "h".
This symbol represents the volume measure of one litre. It has the short symbol form, "l" or "L".
This symbol represents the measure of one minute of time. It has the short symbol form, "min".
This symbol represents the angular measure of one minute of arc. It has the short symbol form, "'".
This symbol represents the dimensionless measure of one neper, the natural unit for representing logarithms of ratios of field amplitudes, such as voltage or pressure. It has the short symbol form, "Np".
This symbol represents the angular measure of one second of arc. It has the short symbol form, '"'.
This symbol represents the mass measure of one tonne. It has the short symbol form, "t".
This CD defines symbols which represent the seven base quantities of the SI (Syst\'{e}me International) system of quantities for describing quantity dimensions. (DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1 - "Quantities and units", 2008)
This symbol represents the SI base quantity of amount of substance. It has the short symbol form, "N".
This symbol represents the SI base quantity of electrical current. It has the short symbol form, "I".
This symbol represents the SI base quantity of length. It has the short symbol form, "L".
This symbol represents the SI base quantity of luminous intensity. It has the short symbol form, "J".
This symbol represents the SI base quantity of mass. It has the short symbol form, "M".
This symbol represents the proposed SI base quantity of dimension one, or the dimensionless quantity. It has the short symbol form, "1".
This symbol represents the SI base quantity of thermodynamic temperature. It has the short symbol form, "\Theta;".
This symbol represents the SI base quantity of time. It has the short symbol form, "T".
This CD defines symbols to represent the seven base units of the SI (Syst\'eme International) system of units. (DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1 - "Quantities and units", 2008). Each unit refers to a corresponding base quantity in SI_BaseQuantities.ocd.
This is a base unit for the SI system. It is defined physically as that constant electric current which, if maintained in two parallel conductors of infinite length, of negligible circular cross-section, and placed 1 metre apart in vacuum, would produce between these conductors a force equal to 2 × 10–7 newton per metre of length [9th CGPM (1948)].
This symbol represents the measure of one ampere, the standard SI unit of measure for quantities of electric current. It has the short symbol form, "A", in upright roman font.
This is a base unit for the SI system. It is defined physically as the luminous intensity, in a given direction, of a source that emits monochromatic radiation of frequency 540×10^12 hertz and that has a radiant intensity in that direction of 1/683 watt per steradian [16th CGPM (1979)].
This symbol represents the measure of one candela, the standard SI unit measure for quantities of luminous intensity. It has the short symbol form, "cd", in upright roman font.
This is a base unit for the SI system. It is defined physically as equal to the fraction 1/273.16 of the thermodynamic temperature of the triple point of water [International Temperature Scale of 1990, ITS-90, adopted by CIPM in 1989]. The isotopic composition of the water is defined by Vienna Standard Mean Ocean Water.
This symbol represents the measure of one kelvin, the standard SI unit of measure for quantities of thermodynamic temperature. It has the short symbol form, "K", in upright roman font.
This is a base unit for the SI system. It is defined physically as the mass of the International Prototype Kilogram stored at the International Bureau of Weights and Measures (BIPM) in in Sèvres, France [3rd CGPM (1901)]. A proposal is pending to redefine the standard mass in terms of natural constants.
This symbol represents the measure of one kilogram of mass, the standard SI unit of measure for quantities of mass. It has the short symbol form, "kg", in upright roman font.
This is a base unit for the SI system. It is defined physically as the length of the path travelled by light in vacuum during a time interval of 1/299 792 458 of a second. This definition was provided in 1983 by the seventeenth General Conference on Weights and Measures (CGPM) [17th CGPM (1983)].
This symbol represents the measure of one metre of length, the standard SI unit of measure for quantities of length or physical distance. It has the short symbol form, "m", in upright roman font.
This is a base unit for the SI system. It is defined physically as the amount of substance of a system which contains as many "elemental entities" as there are atoms in 12 grams of carbon-12 [14th CGPM (1971)].
This symbol represents the measure of one mole, the standard SI unit measure for quantities of amount of substance. It has the short symbol form, "mol", in upright roman font.
This symbol represents the dimensionless unit corresponding to the dimensionless quantity dimension. It has the short symbol form, "1".
This is a base unit for the SI system. It is defined physically as the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium 133 atom [13th CGPM (1967)]. This definition refers to a caesium atom at rest at a temperature of 0 kelvin (absolute zero). The ground state is defined at zero magnetic field [1997 meeting of the BIPM].
This symbol represents the measure of one second of time, the standard SI unit of measure for quantities of time. It has the short symbol form, "s", in upright roman font.
num(Celsius temperature) + 273.15 = num(temperature)
This symbol represents the physical quantity of Celsius temperature. A variable representing an arbitrary quantity of temperature is commonly represented with the italic, upper case letter, "T".
This symbol represents the physical quantity of absorbed dose of ionizing radiation. A variable representing an arbitrary quantity of absorbed dose is commonly represented with the italic, upper case letter, "D".
This symbol represents the quantity of a geometric planar angle. A variable representing an arbitrary quantity of angle is commonly represented with the italic, lower case greek variable, e.g., "\theta;".
This symbol represents the physical quantity of area.
dim(capacitance) = dim(charge/voltage) = current^2*time^4/(mass*length^2)
This symbol represents the physical quantity of electric capacitance. A variable representing an arbitrary quantity of capacitance is commonly represented with the italic, upper case letter, "C".
dim(catalytic activity) = (amount of substance)/time
This symbol represents the physical quantity of catalytic activity, an amount of catalyst that effects a rate of catalytic conversion of an amount of substance.
This symbol represents the physical quantity of electric charge. A variable representing an arbitrary quantity of charge is commonly represented with the italic, upper case letter, "Q".
dim(concentration) = (amount of substance)/length^3
This symbol represents the physical quantity of concentration, the amount of a substance in a volume.
dim(conductance) = dim(current/voltage) = current^2*time^3/(mass*length^2)
This symbol represents the physical quantity of electrical conductance, the inverse of resistance. A variable representing an arbitrary quantity of conductance is commonly represented with the italic, upper case letter, "G" or "S".
This symbol represents the physical quantity of volumic mass density.
dim(energy) = dim(force)*length = mass*length^2/(time^2)
This symbol represents the physical quantity of energy. A variable representing an arbitrary quantity of energy is commonly represented with the italic, upper case letter, "E".
This symbol represents the physical quantity of entropy, a measure of the disorder of a system.
This symbol represents the physical quantity of equivalent dose of ionizing radiation. Equivalent dose is similar to absorbed dose but is weighted to reflect differing biological effects and different radiation types. A variable representing an arbitrary quantity of equivalent dose is commonly represented with the italic, upper case letter, "H".
This symbol represents the physical quantity of force. A variable representing an arbitrary quantity of force is commonly represented with the italic, upper case letter, "F".
This symbol represents the physical quantity of frequency. A variable representing an arbitrary quantity of frequency is commonly represented with the italic, lower case greek variable, "\omega;".
dim(heat) = dim(energy) = mass*length^2/(time^2)
This symbol represents the physical quantity of energy that is transferred from one object to another due to a difference in temperature.
dim(illuminance) = dim(luminous flux)/(length^2) = (luminous intensity)/(length^2)
This symbol represents the physical quantity of illuminance. A variable representing an arbitrary quantity of illuminance is commonly represented with the italic, upper case letter, "E".
dim(inductance) = dim(voltage)*time/current = mass*length^2/(current^2*time^2)
This symbol represents the physical quantity of electrical inductance. A variable representing an arbitrary quantity of inductance is commonly represented with the italic, upper case letter, "L".
dim(luminous flux) = (luminous intensity)*dim(solid angle) = (luminous intensity)
This symbol represents the physical quantity of luminous flux. A variable representing an arbitrary quantity of luminous flux is commonly represented with the italic, upper case letter, "Φv" (\phi; sub V).
dim(magnetic flux) = dim(energy/current) = mass*length^2/(current*time^2)
This symbol represents the physical quantity of magnetic flux. A variable representing an arbitrary quantity of magnetic flux is commonly represented with the italic, upper case greek letter, "\Phi;".
dim(magnetic flux density) = dim(magnetic flux)/(length^2) = mass/(current*time^2)
This symbol represents the physical quantity of magnetic flux density. A variable representing an arbitrary quantity of magnetic flux density is commonly represented with the italic, upper case letter, "B".
dim(moment of force) = length*dim(force) = mass*length^2/(time^2)
This symbol represents the physical quantity of force.
This symbol represents the physical quantity of momentum.
dim(power) = dim(energy)/time = mass*length^2/(time^3)
This symbol represents the physical quantity of power, or energy divided by time. A variable representing an arbitrary quantity of power is commonly represented with the italic, upper case letter, "P".
dim(pressure) = dim(force)/dim(area) = mass/(length*time*time)
This symbol represents the physical quantity of pressure. A variable representing an arbitrary quantity of pressure is commonly represented with the italic, lower case letter, "p".
This symbol represents the physical quantity of radio nuclide activity, or radioactivity. A variable representing an arbitrary quantity of radioactivity is commonly represented with the italic, upper case letter, "A".
dim(resistance) = dim(voltage/current) = mass*length^2/(current^2*time^3)
This symbol represents the physical quantity of electrical resistance, the resistance that an electrical circuit has to electrical current. A variable representing an arbitrary quantity of electrical resistance is commonly represented with the italic, upper case letter, "R".
This symbol represents the quantity of a two dimensional, geometric solid angle. A variable representing an arbitrary quantity of solid angle is commonly represented with the italic, upper case greek variable, "\Omega;".
This symbol represents the physical quantity of speed. It is the size of the derivative of position with respect to time.
dim(voltage) = dim(energy/charge) = mass*length^2/(current*time^3)
This symbol represents the physical quantity of voltage or electric tension. A variable representing an arbitrary quantity of voltage is commonly represented with the italic, upper case letter, "V".
This symbol represents the physical quantity of volume. It has the short symbol form, "V".
2010-08-25 This CD defines symbols to represent the names of named derived units the SI (Syst\'eme International) system of units. (DRAFT INTERNATIONAL STANDARD ISO/DIS 80000-1 - "Quantities and units", 2008). Each unit refers to a corresponding derived quantity in SI_DerivedQuantities.ocd.
This symbol represents an SI unit of radio nuclide activity, or radioactivity. A becquerel of activity represents one nuclear decay event per second. It has the short symbol form, "Bq".
This symbol represents an SI unit of electric charge. It has the short symbol form, "C".
This symbol represents an SI unit of Celsius temperature. It has the short symbol form, "ºC".
This symbol represents an SI unit of electric capacitance. It has the short symbol form, "F".
This symbol represents one gram. This unit is implied by the incorporation of the prefix "kilo" in the base unit standard, kilogram. Since SI prefixes may not, by SI standard, be presented by prepending to "kilogram", the gram is introduced for the application of prefixes. By itself, gram should not appear in SI compliant presentation. It has the short symbol form, "g".
This symbol represents an SI unit of absorbed dose of ionizing, radiation. A gray of absorbed dose represents one joule of energy absorbed per kilogram of mass. It has the short symbol form, "Gy".
This symbol represents an SI unit of electrical inductance. It has the short symbol form, "H".
This symbol represents an SI unit of frequency. It has the short symbol form, "Hz".
This symbol represents an SI unit of energy. It has the short symbol form, "J".
This symbol represents an SI unit of equivalent dose of catalytic activity. A katal of catalytic activity represents the amount of catalyst to effect one mole of catalytic conversion per second. It has the short symbol form, "kat".
This symbol represents an SI unit of luminous flux. It has the short symbol form, "lm".
This symbol represents an SI unit of illuminance. It has the short symbol form, "lx".
This symbol represents an SI unit of force. It has the short symbol form, "N".
This symbol represents an SI unit of electrical resistance. It has the short symbol form, "\Omega;".
This symbol represents an SI unit of pressure. It has the short symbol form, "Pa".
This is a dimensionless derived unit for the SI system. It is the angle subtended at the center of a circular arc with length the same as the radius of the corresponding circle.
This symbol represents one radian, the natural unit of measure for angle. It has the short symbol form, "rad".
This symbol represents an SI unit of electrical conductance. It is not plural. It has the short symbol form, "S".
This symbol represents an SI unit of equivalent dose of ionizing, radiation. A sievert of equivalent dose represents one joule of biologically damaging energy absorbed per kilogram of mass. It has the short symbol form, "Sv".
One steradian is defined as the solid angle subtended at the center of a sphere of radius r by a part of the surface of the sphere having an area r*r.
This symbol represents one steradian, the natural unit of measure for solid angle. It has the short symbol form, "sr".
This symbol represents an SI unit of magnetic flux density. It has the short symbol form, "T".
This symbol represents an SI unit of voltage or electric tension. It has the short symbol form, "V".
This symbol represents an SI unit of power, a joule per second. It has the short symbol form, "W".
This symbol represents an SI unit of magnetic flux. It has the short symbol form, "Wb".
This CD defines symbols for functions applied to SI quantities and units.
For named SI derived quantities and named units, the value returned by the dim operator shall be defined for each case.
The dim operator acts as the identity operation when applied to an SI base quantity.
The dim operator applied to a multiplicative inverse of a quantity is equal to the multiplicative inverse of the dim operator applied to the same quantity.
The dim operator applied to a product is equal to the associative product of the dim operator applied to the individual factors.
The dim operator applied to a product is equal to the commutative product of the dim operator applied to the factors.
The dim operator returns a value of one when applied to a dimensionless quantity or number.
The dim operator returns the corresponding SI base quantity when applied to an SI base unit.
The symbol to represent the function that returns the physical dimension of its argument in terms of products of powers of SI base quantities. The dim operation may be meaningfully applied to SI quantities, SI units, and numbers without physical dimension.
The symbol to represent the function to return the kind of a quantity. The value of this function is referred to, but not defined in the SI. Its value, kind(Q) for a given quantity, Q, is left to the user to assign.
The num operator applied to an SI base quantity or unit returns the value one.
The num operator may be applied to any physical quantity.
The quantity num(Q)*unit(Q), may replace any quantity, Q, in a set of physical relations, if all such quantities in the set of relations are so replaced. The quantity num(Q)*unit(Q) is not always the same as Q, however dim(Q) = dim(num(Q)*unit(Q)).
The symbol to represent the function to return the numerical value of a quantity in terms of a product of powers of SI base units.
The unit operator applied to a multiplicative inverse of a quantity is equal to the multiplicative inverse of the unit operator applied to the same quantity.
The unit operator applied to a product is equal to the associative product of the unit operator applied to the factors.
The unit operator applied to a product is equal to the commutative product of the unit operator applied to the factors.
The unit operator applied to an SI base quantity returns the corresponding SI base unit.
The unit operator applied to an SI base unit or SI coherent unit acts as the identity operator, returning that unit.
The unit operator applied to any derived quantity is equal to the unit operator applied to the result of applying the dim operator to the same quantity, i.e., unit(Q) = unit(dim(Q)).
The unit operator may be applied to any physical quantity.
The unit operator returns a value of one when applied to a dimensionless quantity or number.
The symbol to represent the function that returns the units of its argument in terms of a product of powers of SI base units.
A CD of basic aggregate category constructors. This CD holds constructors of individual instances of the categories, with defining properties of the categories.
This symbol represents a generic type for aggregates (or collections of objects.
This symbol represents the type of continuous sets.
discrete set type does not have continuous set type or piecewise continuous set type
This symbol represents the type of discrete sets.
This symbol represents the type of finite sets.
infinite set type does not have finite set type
This symbol represents the type of infinite sets.
This symbol represents the type of multisets.
non-continuous set type does not have continuous set type
This symbol represents the type of non-continuous sets.
piecewise continuous set type has set type
This symbol represents the type of piecewise continuous sets.
This symbol represents the type of sets.
A CD of basic algebraic concepts At present this CD only holds definitions of zero and one. They are deliberately defined here without specifying any particular structure (e.g. a group) to which they correspond.
This symbol represents the multiplicative identity element.
This symbol represents the additive identity element.
A CD of alternative encoding symbols This CD is motivated in part by a desire to maintain compatibility with the MathML semantics element, In order for it to be possible for OpenMath to express symbols in an alternative encoding (this facilitates the exact translation and representation of objects) we use the OpenMath attribution nodes (which performs a similar role to the MathML semantics nodes). The formats and descriptions of common syntaxes are held in this CD; at present this only includes LaTeX and MathML.
Alternative encodings in OpenMath are dealt with by using OMATTR symbols together with the alternative encoding placed in a string. The string encoding must be valid XML, and so non-XML valid characters must themselves be encoded as suggested in "Draft of the OpenMath Standard". For alternative encodings to be represented in OpenMath, one must define a symbol to describe the encoding.
A symbol which heads a piece of LaTeX encoding in an attribution.
A symbol which heads a piece of MathML encoding in an attribution. The MathML encoding is an XML encoding, and the details may be found at: http://www.w3.org/Math/Overview.html
This CD defines symbols for common arithmetic functions.
for all x,y | abs(x) + abs(y) >= abs(x+y)
A unary operator which represents the absolute value of its argument. The argument should be numerically valued. In the complex case this is often referred to as the modulus.
This symbol represents a (binary) division function denoting the first argument right-divided by the second, i.e. divide(a,b)=a*inverse(b). It is the inverse of the multiplication function defined by the symbol times in this CD.
for all integers a,b | There does not exist a c such that a/c is an Integer and b/c is an Integer and c > gcd(a,b). Note that this implies that gcd(a,b) > 0
The symbol to represent the n-ary function to return the gcd (greatest common divisor) of its arguments.
for all integers a,b | There does not exist a c>0 such that c/a is an Integer and c/b is an Integer and lcm(a,b) > c.
The symbol to represent the n-ary function to return the least common multiple of its arguments.
The symbol representing a binary minus function. This is equivalent to adding the additive inverse.
The symbol representing an n-ary commutative function plus.
if n is an integer then x^0 = 1, x^n = x * x^(n-1)
This symbol represents a power function. The first argument is raised to the power of the second argument. When the second argument is not an integer, powering is defined in terms of exponentials and logarithms for the complex and real numbers. This operator can represent general powering.
An operator taking two arguments, the first being the range of multiplication e.g. an integral interval, the second being the function to be multiplied. Note that the product may be over an infinite interval.
This represents the statement that the factorial of n is equal to the product of all the integers between 1 and n inclusive.
for all a,n | power(root(a,n),n) = a (if the root exists!)
A binary operator which represents its first argument "lowered" to its n'th root where n is the second argument. This is the inverse of the operation represented by the power symbol defined in this CD. Care should be taken as to the precise meaning of this operator, in particular which root is represented, however it is here to represent the general notion of taking n'th roots. As inferred by the signature relevant to this symbol, the function represented by this symbol is the single valued function, the specific root returned is the one indicated by the first CMP. Note also that the converse of the second CMP is not valid in general.
An operator taking two arguments, the first being the range of summation, e.g. an integral interval, the second being the function to be summed. Note that the sum may be over an infinite interval.
This represents the summation of the reciprocals of all the integers between 1 and 10 inclusive.
for all a,b | a * 0 = 0 and a * b = a * (b - 1) + a
The symbol representing an n-ary multiplication function.
This symbol denotes unary minus, i.e. the additive inverse.
Further to the basic arithmetic functions, we define some more common arithmetic operations. This includes a commutative times which exhibits the use of inheritance within the CD's.
A unary operator which represents the inverse of an element of a set. This symbol could be used to represent additive or multiplicative inverses.
The symbol representing an n-ary multiplication function inheriting from the times in arith1, but with the extra property that here it must be commutative.
The symbol represents the n-ary function, a_1,...,a_n to return a list consisting of the gcd (greatest common divisor) of its arguments, together with n elements x_1,...,x_n such that gcd(a_1,...,a_n)=x_1 a_1+...+x_n a_n
This CD provides a representation of various asymptotic set constructors (O, \Omega, etc.) The constructors represent sets of functions : R -> R.
O(g) = { f:reals -> reals | exists c in positive reals and M in the naturals such that forall n geq M. |f(n)| leq c*g(n)}
The O symbol represents a unary function which constructs a set of certain functions of type reals to reals. The condition f(n)=O(g(n)) is intended to express an upper bound condition on f.
f(x) is Omega(g(x)) if and only if it is not true that f(x) is O(g(x))
The Omega symbol represents a unary function which constructs a set of certain functions of type reals to positive reals. The Omega symbol represents a set of functions such that for any function in the set Omega(g(x)), f(x); it is not true that f(x) is in O(g(x)).
f(x) is asymptotic g(x) if and only if the limit as x tends to infinity of f(x)/g(x) = 1
The asymptotic symbol represents a binary relation between two functions of type reals to reals. The asymptotic relation between two functions returns true if the two functions have the same rate of growth and more precisely there ratio approaches 1 as the variable approaches infinity. Formally we say that f(x) is asymptotic to g(x) if and only if the limit as x tends to infinity of f(x)/g(x) = 1.
o(g) = {f : reals -> reals | the limit as x tends to infinity of f(x)/g(x) is 0}
The o symbol represents a unary function which constructs a set of certain functions of type reals to positive reals. The condition f(n) = o(g(n)) is intended to express a lower bouund condition on f. Formally we say that f(n) = o(g(n)) if and only if the limit as n tends to infinity of f(n)/g(n) exists and is equal to 0.
f(x) = omega(g(x)) if and only if there is an epsilon > 0 and an infinite sequence x_1, x_2, x_3, ... such that for all j then abs(f(x_j)) > epsilon * g(x_j).
The omega symbol represents a unary function which constructs a set of certain functions of type reals to positive reals. The omega symbol represents a set of functions such that for any function in the set omega(g(x)), f(x); it is not true that f(x) is in o(g(x)). Formally we say that f(x) = omega(g(x)) if and only if there is an epsilon > 0 and an infinite sequence x_1, x_2, x_3, ... such that for all j then abs(f(x_j)) > epsilon * g(x_j).
f(x) = theta(g(x)) if and only if there are constants c_1 not= 0 and c_2 not= 0 and x_0 such that for all x > x_0 it is true that c_1*g(x) < f(x) < c_2*g(x)
The theta symbol represents a unary function which constructs a set of certain functions of type reals to positive reals. The theta symbol represents a set of functions which all have the same 'rate of growth'. Formally we say that f(x) = theta(g(x)) if and only if there are constants c_1 not= 0 and c_2 not= 0 and x_0 such that for all x > x_0 it is true that c_1*g(x) < f(x) < c_2*g(x).
This CD provides a common representation of "bigfloats" in a mantissa/ radix/exponent format. There is a further version, which provides an opportunity to state a precision (only required in a different radix). No operations are defined here -- see arith and alg.
Written by James Davenport on 1999-07-13. bigfloatprec added 1999-07-21.
The bigfloat constructor takes three arguments, a mantissa, a base and the exponent.
bigfloatprec(f,r,p)=f However, if converted to radix r, only p digits in that radix are significant. This usually means that it originated in radix r, and has since (e.g. for display purposes) been converted into its current radix. For exposition, f = m*r^e.
The bigfloat "with precision specified in (another) radix" constructor. Takes 3 arguments, the first argument is a floating point number constructed with the bigfloat constructor, the second is the new radix, whilst the third specifies how many digits are significant.
This CD is intended to be compatible with the calculus operations in Content MathML. Integration is just for the univariate case and is either definite or indefinite.
for all a < b < c | integral over [a,c] = integral over [a,b] + integral over [b,c]
for all a,b | integral from a to b = -integral from b to a
This symbol is used to represent definite integration of unary functions. It takes two arguments; the first being the range (e.g. a set) of integration, and the second the function.
An example to represent the definite integration of sin(x) between the points -1.0 and 1.0.
An example to represent the definite integration of f(x), for x in the set C:
diff(lambda y:a(y) * b(y))(x) = diff(lambda y:a(y))(x) * b(x) + a(x) * diff(lambda y:b(y))(x)
diff(lambda y:a(y) + b(y))(x) = diff(lambda y:a(y))(x) + diff(lambda y:b(y))(x)
This symbol is used to express ordinary differentiation of a unary function. The single argument is the unary function.
This represents the equation: derivative(x + 1.0) = 1.0
application of integrate followed by differentiate is the identity function, that is: diff(lambda y:integral(lambda z:f(z))(y)) = f
This symbol is used to represent indefinite integration of unary functions. The argument is the unary function.
An example which represents the equation: integral(x +-> sin(x)) w.r.t. x = x +-> -cos(x)
This symbol is used to express the nth-iterated ordinary differentiation of a unary function. The first argument is n, and the second the unary function.
\frac{\partial^{n+m}}{\partial x^n\partial y^m} f(x,y,z) = \frac{\partial^n}{\partial x^n}(\frac{\partial^m}{\partial y^m}(f(x,y,z)))
This symbol is used to express the nth-iterated partial differentiation of a function of more than one variable. It has three arguments, the first is a list of positive integers which index the variables of the function, the second is a list of integers which specify the order of differentiation with respect to the corresponding variable, the third argument is the function. Application of the symbol should be taken as meaning the following: differentiation of the third argument with respect to the variables indexed by the first argument. The orders of differentiation are specified by the second argument, in the following manner: The i'th element of the second argument is the order of differentiation of the variable indexed by the i'th element of the first argument.
This symbol is used to express partial differentiation of a function of more than one variable. It has two arguments, the first is a list of integers which index the variables of the function, the second is the function.
An example to represent the equation: \partial^2{xyz}/ \partial{x}\partial{z} = y
This symbol is used to express partial differentiation of a function of more than one variable. It has three arguments, the first is a list of integers which give the degrees by which the function is differentiated by the corresponding variable. The second is the total degree (which should therefore be the sum of the values in the first list, but may be given symbolically). The third is the function.
This CD provides a vocabulary for talking about integrals.
This symbol represents the integrand of the integral.
This symbol represents the variable with respect to which an integral is calculated.
CC Type Attribution for OM Initial version: O. Caprotti (May 20, 1999) Revised: O. Caprotti (Aug 20, 1999), split-up so that it uses symbols from lc, omtypes.
Attribution tag to denote type-judgement
Attribution tag to denote type-judgement with coercion
Coercion Functions among OM Types Initial version: O. Caprotti
The function that converts an integer to a float.
This CD defines some basic combinatorics definitions.
Written by S. Dalmas (INRIA Sophia Antipolis) for the Esprit OpenMath project.
Bell(n) = the sum from k=0 to n of Stirling2(n,k)
The Bell numbers: Bell(n) is the total number of possible partitions of a set of n elements.
Fibonacci(0) = 0, Fibonacci(1) = 1, and Fibonacci(n + 1) = Fibonacci(n) + Fibonacci(n - 1)
The Fibonacci numbers, defined by the linear recurrence: Fibonacci(0) = 0, Fibonacci(1) = 1, and Fibonacci(n + 1) = Fibonacci(n) + Fibonacci(n - 1). Note that some authors define Fibonacci(0) = 1.
Stirling1(n,m) = the sum k=0 to n-m of (-1)^k * binomial(n-1+k, n-m+k) * binomial(2n-m,n-m-k) * Stirling2(n,m)
The Stirling numbers of the first kind. (-1)^(n-m)*Stirling1(n,m) is the number of permutations of n symbols which have exactly m cycles. Note that there are a few slightly different definitions of these numbers.
Stirling2(n,m) = 1/m! * the sum from k=0 to m of (-1)^(m-k) * binomial(m,k) * k^n
The Stirling numbers of the second kind. Stirling2(n, m) is the number of partitions of a set with n elements into m non empty subsets. Note that there are a few slightly different definitions of these numbers.
The binomial coefficients. binomial(n, m) is the number of ways of choosing m objects from a collection of n distinct objects without regard to the order.
multinomial(n, n1, ... nk) is equal to n!/(n1!*n2! ...*nk!) where n=n1+...+nk
The multinomial coefficient, multinomial(n, n1, ... nk) is the number of ways of choosing ni objects of type i (i from 1 to k) without regard to order, in such a way that the total number of objects chosen is n. multinomial(n, n1, ... nk) is equal to n!/(n1!*n2! ...*nk!).
This CD is intended to be `compatible' with the MathML view of operations on and constructors for complex numbers.
for all r,a | argument(complex_polar(r,a)=a)
the argument of x+i*y = arctan(y,x) (two-argument arctan from transc2)
the argument of x+i*y = arctan(y/x) (if x is positive)
This symbol represents the unary function which returns the argument of a complex number, viz. the angle which a straight line drawn from the number to zero makes with the Real line (measured anti-clockwise). The argument to the symbol is the complex number whos argument is being taken.
for all x,y | complex_cartesian(x,y) = x + iy
This symbol represents a constructor function for complex numbers specified as the Cartesian coordinates of the relevant point on the complex plane. It takes two arguments, the first is a number x to denote the real part and the second a number y to denote the imaginary part of the complex number x + i y. (Where i is the square root of -1.)
for all r,a | complex_polar(r,a) = r*e^(a*i)
for all x | if a is a real number and k is an integer then complex_polar(x,a) = complex_polar(x,a+2*pi*k)
for all x,y,r,a | (r sin a = y and r cos a = x) implies (complex_polar(r,a) = complex_cartesian(x,y)
This symbol represents a constructor function for complex numbers specified as the polar coordinates of the relevant point on the complex plane. It takes two arguments, the first is a nonnegative number r to denote the magnitude and the second a number theta (given in radians) to denote the argument of the complex number r e^(i theta). (i and e are defined as in this CD).
if a is a complex number then (conjugate(a) + a) is a real number
A unary operator representing the complex conjugate of its argument.
This represents the imaginary part of a complex number
This represents the real part of a complex number
This CD defines symbols which represent basic physical dimensions.
This symbol represents the acceleration physical dimension. It is the second derivative of distance with respect to time.
This symbol represents the area physical dimension.
This symbol represents the charge physical dimension.
This symbol represents the concentration physical dimension, it is the amount of a substance in a volume.
This symbol represents the current physical dimension.
This symbol represents the density physical dimension, it is the mass per unit volume.
This symbol represents the spatial difference between two points. The direction of the displacement is taken into account as well as the distance between the points.
This symbol represents the energy physical dimension.
This symbol represents the force physical dimension.
This symbol represents the length physical dimension.
This symbol represents the mass physical dimension.
This symbol represents the momentum physical dimension, it is mass times velocity.
This symbol represents the power physical dimension, it is energy per time.
This symbol represents the pressure physical dimension.
This symbol represents the resistance physical dimension, it is the resistance that an electrical circuit has to flow of charge.
This symbol represents the speed physical dimension. It is the size of the derivative of distance with respect to time.
This symbol represents the temperature physical dimension.
This symbol represents the time physical dimension. Note that the main units for time are defined in the units_time1 CD.
This symbol represents the velocity physical dimension. It is the derivative of (vector) distance with respect to time.
This symbol represents the voltage physical dimension.
This symbol represents the volume physical dimension.
The primal objective of OpenMath objects is to represent mathematical expressions. In this Content Dictionary another objective is addressed, namely to express an action related to a mathematical expression. Such a request for an action is generally referred to as a query. The specific queries are called directives. In this CD we define some. An entity (software) carrying out the query is referred to as a service. The service might return an OpenMath object. To formalize this object, we also introduce the symbol response in this CD. amc 2004-03-18: added the directive explore. amc 2004-03-24: removed redundancies.
The response to the decide query is logically equivalent to the truth of the argument.
This symbol is a function with one argument, which should be a clause. When applied to a clause, it asks whether the clause holds.
The question if sin(Pi) is equal to zero can be phrased as follows.
Asking to disprove C amounts to asking for a proof that C does not hold. (In other words, this symbol is completely redundant, even in multi-valued logic.***)
This symbol is a function with one argument, which should be a clause. When applied to a clause C, it asks for a proof of that C does not hold.
This symbol is a function with one argument, which should be a mathematical expression. When applied to a mathematical expression, it asks for an evaluation or simplification of the expression. The evaluation or simplification to be carried out by a service is a simpler mathematical expression (in some definition of complexity of objects) which is equal to the argument.
The value of sin(Pi) is zero. The expression below asks for sin(Pi) to be evaluated, and so a service receiving the object is supposed to return zero.
The type of the responded object should be equal to the specification, that is the second argument of the evaluate_to_type.
This symbol is a function with two arguments, which should be a mathematical expression and a type. When applied to a mathematical expression E and a type T, it asks for an evaluation or simplification of E to a mathematical expression of type T.
The value of (7*6)/2 is a natural number. The expression below asks for this integer.
A response R should satisfy the requirement that R implies the assertion.
This symbol is a unary function whose argument should be a mathematical assertion. When applied to an assertion A, it asks for conditions under which the assertion holds.
Given the Pappos configuration P, the Pappos thesis T asserts that three points of the configuration are collinear. A conceivable answer to the explore directive with the assertion that in configuration P the thesis T holds, is a nondegeneracy condition that makes the assertion valid.
The body of argument with the binder x replaced by the response should be a true statement.
This symbol is a binder, whose body should be a clause. When bound to a variable (or list of variables) x with body P(x), it asks for a mathematical expression A such that P(A) holds.
Searching for a real number x such that sin(x) = 0
is to be compared to asking for an inverse of x:
This symbol is a function with one argument, which should be a mathematical expression. When applied to a mathematical expression, it asks for mathematical expressions related to the argument. If the argument is a single OpenMath symbol, the service might respond by the list of all properties in the CD containing the argument. Alternatively, the service can provide a list of CDs which use the CD in which the argument occurs. Another service might return all documents in which the symbol occurs. If the argument is a more complicated object, the same services could be called for, but then with all OpenMath symbols occurring in the argument instead of the single one.
This symbol is a function with one argument, which should be a clause. When applied to a clause C, it asks for a proof of C.
This symbol is a function with two arguments, the first of which should be a clause and the second of which should be a symbol indicating a logic theory. When applied to arguments C, T, it asks for a proof of C in theory T.
This symbol is a function of one argument, which should be a query. When applied to a query, it refers to the response a service might give. It will mainly be used in this CD to express formal mathematical properties of queries.
Extended Calculus of Constructions Primitives Initial version: O. Caprotti (July 1, 1999) Revised: O. Caprotti (September 8, 1999)
The pairing constructor. It takes two OpenMath objects as first element and second element of the pair, and a third optional OpenMath object that represents the type of the pair.
The first projection function that extracts the first component of a Pair. It satisfies the sigma-reduction rule.
The second projection function that extracts the second component of a Pair. It satisfies sigma-reduction rule.
The binder symbol used to construct the type of Cartesian products. The (either plain or attributed) variables might occur in the body \OM\ object.
The n-ary tupling constructor when n>2. The arguments are the element of the tuple. Tuple objects can also be constructed by successive nesting of Pair.
Symbols to provide a vocabulary for talking about properties of (systems of) equations.
A predicate to indicate that an equation or system of equations is dense.
A predicate to indicate that an equation or system of equations is linear, i.e. is expressed in terms of constants and first order terms.
A predicate to indicate that an equation or system of equations is non-linear, i.e. contains terms of order greater than 1.
A predicate to indicate that an equation or system of equations is sparse.
This symbol represents the error which is raised when an application reads a symbol which is not present in the mentioned content dictionary. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unexpected_symbol and the unexpected symbol as in the example below.
The application received a mistyped symbol
This symbol represents the error which is raised when an application reads a symbol which is present in the mentioned content dictionary, but which it has not implemented. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unhandled_symbol and the unhandled symbol as in the example below.
The application does not implement the Complex numbers:
This symbol represents the error which is raised when an application reads a symbol where the mentioned content dictionary is not present. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unsupported_CD and the symbol from the unsupported Content Dictionary as in the example below.
The application does not know about the CD specfun1
This content dictionary contains symbols to describe the Exponential integral and associated functions.
The symbol E defines the generalised exponential integral as in Abramovitz & Stegun equation 5.1.4. This is an ordinary integral: $$E_n(z)=\int_1^{-\infty}\frac{e^{-zt}}{t^n} dt\qquad(\Re z>0)$$ which is then extended by analytic continuation (this latter is not currently represented in the FMPs) to the complex plane slit along the negative real axis. Note that OpenMath's definition is curried, i.e. E(n) is a function.
The symbol Ei defines the basic exponential integral as in Abramovitz & Stegun equation 5.1.2. This is a Cauchy principal value integral: $$Ei(x)=\int_{-\infty}^x\frac{e^t}t dt\qquad(x>0)$$ which is then extended by analytic continuation (this latter is not currently represented in the FMPs) to the complex plane slit along the negative real axis
The symbol li defines the basic logarithmic integral as in Abramovitz & Stegun equation 5.1.2. This is a Cauchy principal value integral: $$li(x)=\int_0^x\frac1{\ln t}t dt\qquad(x>1)$$ which is then extended by analytic continuation (this latter is not currently represented in the FMPs) to the complex plane slit along the negative real axis
A CD of basic functions for field theory
This symbols represents a unary function, whose argument should be a field. It returns the addition map on the field. We allow for the map to be n-ary.
The identity field(R,+,0,-,*,1,inv) is +.
This symbol is a unary function, whose argument should be a field S. When applied to S its value is the monoid underlying S.
This symbol represents a unary function, whose argument should be a field S (for instance constructed by field). When applied to S, its value should be the set of elements of S.
The carrier of field(R,+,0,-,*,1,inv) is R.
This symbol is a function with two arguments. Its first argument should be a field. The second should be an arithmetic expression A, whose operators are times, plus, minus, unary_minus, and power, and whose leaves are members of the carrier of G. When applied to G and A, it denotes the element (of G) that is the element obtained from the leaves of A by applying the operations of G instead of those from the CD arith1 according to A. Here multiplication, addition, subtraction, minus, and power take over the roles of times, plus, minus, unary_minus, and power, respectively. Also, an integer m occurring in A will be interpreted as a member of G by interpreting it as the sum of m copies of the identity element, the symbol alg1.one will be interpreted as the identity, and the symbol alg1.zero will be interpreted as the zero of G.
This symbol is a constructor for fields. It takes seven arguments R, a, o, n, m, e, i: which are, respectively, a set R to specify the elements in the field, a binary operation a on R, an element o of R, and a unary operation n on R such that [R,a,o,n] is a commutative group, a binary operation m on R, an element e of R, and a map from R - {o} to itself such that [R,m,e] is a monoid and such that [R - {o},m',e,i] is a group, where m' is the restriction of m to R -{o}.
This example represents the field of rational numbers. The field addition is binary addition, the field multiplication is binary multiplication.
This symbols represents a unary function, whose argument should be a field. It returns the identity element of the field.
The identity field(R,+,0,-,*,1,inv) is 1.
This symbol represents a unary function, whose argument should be a field S. It returns the map sending a nonzero element of S to its multiplicative inverse.
The inverse of field(R,+,0,-,*,1,inv) is inv.
If is_commutative(G) then for all a,b in carrier(G) a*b = b*a
The unary boolean function whose value is true iff the argument is a commutative field.
If is_subfield(G,H) then H is a nonempty set of elements of the carrier of G and H is closed under multiplication and taking inverses.
The binary boolean function whose value is true iff the second argument is a subfield of the second.
This symbol represents a unary function, whose argument should be a field S. It returns the map sending an element of S to its additive inverse.
The minus of field(R,+,0,-,*,1,inv) is -.
This symbol represents a unary function, whose argument should be a field S. It returns the multiplication map on the field. We allow for the map to be n-ary.
The multiplication of field(R,+,0,-,*,1,inv) is *.
This symbol is a unary function, whose argument should be a field S. When applied to S its value is the multiplicative group on the nonzero elements of S.
This is a symbol with two or three arguments. Its first argument should be an element g of a field and the second argument should be an integer. The optional third argument is the field G containing g. It denotes the element g^k in G.
This symbol is a constructor symbol with one or two arguments. The first argument is a list or set, D, of field elements. The optional second argument is the field G containing D. It denotes the subfield of G generated by D.
This example represents the subfield of the multiplicative field of the nonzero reals generated by the constants Pi and E:
This symbols represents a unary function, whose argument should be a field. It returns the binary operation of subtraction on the field.
The subtraction of field(R,+,0,-,*,1,inv) is the map sending the pair (r,s) of elements of R to r-s.
This symbols represents a unary function, whose argument should be a field. It returns the zero element of the field.
The identity field(R,+,0,-,*,1,inv) is 0.
Basic functions for homomorphisms in field theory
This symbol is a function with two arguments, which should be a field M and a nonzero element x of M. When applied to M and x, it denotes conjugation on M by x.
If is_automorphism(M,f) then is_isomorphism(M,M,f)
This symbol is a boolean function with two arguments. The first is a field M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a field automorphism f of M.
If is_endomorphism(M,f) then is_homomorphism(M,M,f)
This symbol is a boolean function with two arguments. The first argument is a field M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a field endomorphism from M to M.
If is_homomorphism(M,N,f) then, for each pair of elements x, y of M, we have f(x * y) = f(x) * f(y).
This symbol is a boolean function with three arguments. The first and arguments are fields M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a field homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are fields M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a field isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are fields. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
This symbol is a function with two arguments, which should be a field M and an element x of M. When applied to M and x, it denotes left multiplication on M by x.
This symbol is a function with two arguments, which should be a field M and an element x of M. When applied to M and x, it denotes right multiplication on M by x.
A CD of functions for basic constructions in field theory.
This symbol is a binary function whose first argument is a univariate polynomial ring R over a field, and whose second argument is an irreducible polynomial f in this polynomial ring R. So, when applied to R and f, the function has value the quotient ring R/(f).
The finite field GF(2)[X]/(X^2+X+1) is represented by
This is a unary function. Its argument should be a domain (as in CD ring4). It denotes the fraction field of the domain.
The rationals equals fraction_field(Integers)
This symbol represents a binary function. The first argument should be a natural number p which is zero or a prime number, the second argument a list or a set L. When evaluated on such arguments p and L, the function represents the field of rational functions in L over the rationals if p = 0 and over the field of integers mod p if p is a prime.
The rational function field Q(a,b) in the indeterminates a, b is
A CD of functions for morphisms of fields.
This is a function with a single argument which must be a field. It refers to the automorphism group of its argument.
Same as quotient_by_poly_map in CD ring5, except that R and the quotient ring R[X]/(f) are fields (so f is irreducible in R[X]).
An element aX + b of the finite field GF(3)[X]/(X^2+1) is represented by
This symbol is a binary function. Its first argument should be a field_by_poly(R,f). Its second argument should be a list L of elements of F, the coefficient field of the univariate polynomial ring R = F[X]. The length of the list L should be equal to the degree d of f. When applied to R and L, it represents the element L[0] + L[1] x + L[2] x^2 + ... + L[d-1] ^(d-1) of R/(f), where x stands for the image of x under the natural quotient map R -> R/(f). If the first argument is a field_by_conway(p,n), defined in the CD finfield1, then the same interpretation holds, where R and f are respectively poly_ring_d(GFp(p),1) and conway_polynomial(p,n).
The element x+1 of the Conway field of order 4:
This is a function with three arguments the first two of which must be fields F and K. The third argument should be a set or a list L of ordered pairs (lists of length 2). Each pair [x,y] from L consists of an element x from F and an element y from K. when applied to F, K, and L, the symbol represents the homomorphism from F to K that maps the first entry x of each pair [x,y] to the second entry y of the same pair.
The field of complex numbers is (C, +,0,-,*,1,/), where +,-,*,/ are the standard arithmetic operations.
This is a symbol representing the field of complex numbers.
The carrier set of this field is the set of rational numbers.
The field of rational numbers is (Q, +,0,-,*,1,/), where +,-,*,/ are the standard arithmetic operations.
This is a symbol representing the field of rational numbers.
The field of real numbers is (R, +,0,-,*,1,/), where +,-,*,/ are the standard arithmetic operations.
This is a symbol representing the field of real numbers.
Built by Arjeh M. Cohen 2003-02-25. The information on Conway polynomials is largely taken from Frank Luebeck.
This symbol represents a binary function. Its arguments should be a prime number p and a positive integer n. Before defining which of the possible f(X) is the Conway polynomial we introduce an ordering of the (univariate) polynomials of degree n over GF(p). Here the coefficients of the polynomials are taken in {0, ..., p-1}, the indeterminate is X. Let g(X) = g_nX^n + ... + g_0 and h(X) = h_nX^n + ... + h_0. Then we define g < h if and only if there is an index k with g_i = h_i for i > k and (-1)^{n-k} g_k < (-1)^{n-k} h_k. The Conway polynomial f_{p,n}(X) for GF(p^n) is defined recursively as the smallest polynomial of degree n with respect to this ordering such that: 1) f_{p,n}(X) is monic, 2) f_{p,n}(X) is primitive, that is, it is irreducible and its zeros are generators of the (cyclic) multiplicative group of GF(p^n), 3) for each proper divisor m of n we have that f_{p,m}(X^{(p^n-1) / (p^m-1)})= 0 mod f_{p,n}(X); that is, the ((p^n-1) / (p^m-1))-th power of a zero of f_{p,n}(X) is a zero of f_{p,m}(X).
The existence of these polynomials can be shown with the Chinese Remainder Theorem, see W. Nickel, Endliche Koerper in dem gruppentheoretischen Programmsystem GAP, Diploma thesis, RWTH Aachen (1988) Conway polynomials were defined by R. Parker. Their purpose is to provide a standard notation for elements in a finite field GF(p^n) with p^n elements, p being a prime. This is for example used within computer algebra systems to have data of finite field elements which can easily be ported between different programs. The Conway polynomials are also used in data bases like the Modular Atlas character tables, this was the original motivation for their definition. The computation method of computing the minimal polynomials of all compatible elements was rediscovered in L.S.Heath and N.A.Loehr, New algorithms for generating Conway polynomials over finite fields, Proceedings of the Tenth Annual ACM-SIAM Symposium on Discrete Algorithms (Baltimore, MD, 1999), 429--437, ACM, New York (1999) There are basically two methods to compute Conway polynomials. The first is to run through all polynomials of degree n over GF(p) with respect to the ordering defined above and to check the necessary conditions (for primitivity one has to check that for each proper (maximal) divisor k of p^n-1 we have that f_{p,n}(X) does not divide X^k-1). The second possibility is to take any representation of GF(p^n) and to enumerate all elements in that field which fulfill the compatibility condition 3. above. Then check for each of these elements if it is primitive and if yes compute its minimal polynomial over GF(p). The smallest polynomial found this way is the Conway polynomial. Both methods were used by R. Parker to compute a long list of Conway polynomials. These are available in computer algebra systems like GAP or Magma and they are used in several other programs, like the MeatAxe.
This symbol represents a binary function. The first argument is the base b, a primitive element of a finite field F. The second argument is a nonzero element x in F. It returns the smallest nonnegative integer i such that x=b^i.
This symbol represents a binary function. The first argument should be a prime number p, the second argument a positive integer n. This symbol returns the field GF(q)[X]/ (C(X)), where q = p^n, X is an indeterminate, C(X) is the Conway polynomial f_{n,p}(X), and (C(X)) is the ideal in the polynomial ring GF(q)[X] generated by C(X).
This symbol represents a binary Boolean function. The first argument should be a finite field, the second a an element of that field. When applied to such arguments, the value represented is true if the second argument is a primitive element of the field, that is, a generator of the multiplicative group of the field.
This symbol is a Boolean-valued function with two arguments, the first of which should be a prime number p, and the second of which should be a polynomial with coefficients in GF(p). When applied to p and f, this symbol represents the value true if and only if f is a primitive polynomial, that is, f is irreducible over GF(p), so GF(p)[X]/(f) is a finite field of order p^n, where n is the degree of f, and the image of X in GF(p)[X]/(f) is a generator of the (cyclic) multiplicative group of GF(p)[X]/(f).
This symbol represents a function with one or two arguments. Its first argument should be an element x of a finite field F. The second argument should be a subfield K of F. It returns the minimal polynomial of x over K. If there is only one argument, K defaults to the prime subfield of F.
This symbol has one or two arguments. If there is only one argument, it must be a prime power q. The optional second argument is a polynomial m which is primitive over the prime subfield of GF(q). This symbol returns a primitive element for GF(q) with minimal polynomial m. If there is only one argument, then the minimal polynomial is assumed to be the conway polynomial for GF(q).
This CD is intended to be `compatible' with the corresponding elements in Content MathML. In this CD we give a set of functions concerning functions themselves. Functions can be constructed from expressions via a lambda expression. Also there are basic function functions like compose, etc.
x is in the domain of f if and only if there exists a y in the range of f and f(x) = y
This symbol denotes the domain of a given function, which is the set of values it is defined over.
Deprecated. This symbol was intended to model MathML domainofapplication but as defined it is a synonym for domain. In MathML3, MathML compatibility is defined to use the new restriction symbol.
The identity function, it takes one argument and returns the same value.
x in the domain of f implies f(x) is in the image f
This symbol denotes the image of a given function, which is the set of values the domain of the given function maps to.
(inverse(f))(f(x)) = x if f is injective, that is (for all x,y | f(x) = f(y) implies x=y) implies (inverse(f))(f(z)) = z
f(inverse(f(y))=y if f is defined at inverse(f)(y) that is, if there exists an x s.t. inverse(f)(y) = x then this implies f(inverse(f)(y)) = y
This symbol is used to describe the inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the inverse function is ill-defined without further stipulations. No assumptions are made on the semantics of this inverse.
This symbol is used to represent anonymous functions as lambda expansions. It is used in a binder that takes two further arguments, the first of which is a list of variables, and the second of which is an expression, and it forms the function which is the lambda extraction of the expression
An example to show the connection between curried and uncurried applications of a binary function f (lambda(x,y).(f))(a,b)= (lambda(x).((lambda(y).(f))(b)))(a)
for all f,g,x | left_compose(f,g)(x) = f(g(x))
This symbol represents the function which forms the left-composition of its two (function) arguments.
This symbol is used to describe the left inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the left inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this left inverse.
the range of f is a subset of the image of f
This symbol denotes the range of a function, that is a set that the function will map to. The single argument should be the function whos range is being queried. It should be noted that this is not necessarily equal to the image, it is merely required to contain the image.
restriction takes two arguments, a function f, and a set S, which should be a subset of domain(f) and returns the function f restricted to S.
This symbol is used to describe the right inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the right inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this right inverse.
This CD holds further functions concerning functions themselves. A particularly interesting function is apply_to_list which applies an nary function to all the elements in a specified list. For example, such a function can be used to form sums and products in conjunction with plus and times respectively.
This symbol is used to denote the repeated application of an n-ary function on the elements of a given list. For example when used with plus or times this can represent sums and products. The symbol takes two arguments; the first of which is the n-ary function, the second a list.
One may form a set in the following way. This gives the set {1^2, 2^2, ... , 10^2 }
x in the kernal of f implies that f(x) = 0
This symbol denotes the kernel of a given function. This may be defined as the subset of the range of the given function which maps to the identity element of the image of the given function, however no semantics are assumed. The kernel of a function is also known as the null space of the function.
This symbol is used to denote the chains of application or a binary predicate typified by a < b < c. In particular it is used to support the usage in MathML, where transative relations are classed as nary, but the underlying OpenMath symbols are binary. The symbol takes two arguments; the first of which is the binary predicate, the second a list. It is true if every application of the predicate on a pair of elements of the list, taken in order, returns true, otherwise it is false.
This symbol represents a function forming the right-composition of its two functional arguments.
Symbols to make statements about properties of a function
This CD holds further functions concerning functions themselves. A particularly interesting function is function which constructs a function with given domain and range.
A predicate to indicate that a function is continuous everywhere.
A predicate to indicate that a function is continuous over a particular region or range.
1/x is continuous on the real interval [1,10]
A predicate to indicate that a function is differentiable over its whole domain.
A predicate to indicate that a function is differentiable on a region.
The domain of the function f constructed this way is the first argument
The range of the function f constructed this way is the second argument
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.
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.
A predicate to indicate that a function is piecewise continuous everywhere, i.e. continuous at all but a finite number of points in its domain.
1/x is continuous everywhere except x=0.
A predicate to indicate that a function is continuous at all but a finite number of points in a region.
tan is piecewise continuous over the real interval [0,pi]
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.
This CD defines elements of a free algebra.
This CD contains a symbol to represent the generalised hyperbolic function, and facts relating it to other functions.
for all z \in C F^{1}_{2,0} (z) = cosh(z)
for all z \in C F^{1}_{2,1} (z) = sinh(z)
for complex \alpha, integral n and r an integer between 0 and r (inclusive) (F^\alpha_{n,r})(x) = \Sigma^\infty_{k=0}{\frac{\alpha^k}{(nk+r)!}x^{nk+r}}
This symbol represents the generalised hyperbolic function as recorded by Riccati. It is intended to be applied in the curried form, that is, the symbol should be applied to three arguments in order to return a function which should be applied to one argument. The generalised hyperbolic function may be defined as an infinite sum as in the first CMP/FMP .
A CD of generic algebraic categories. This CD holds information relating to the heirarchical sturcture of the algebraic category system.
This Symbol represents the generic category of Abelian group.
This Symbol represents the generic category of Abelian monoid.
This Symbol represents the generic category of Abelian semigroup.
This Symbol represents the generic category of Euclidean domain.
This Symbol represents the generic category of field.
This Symbol represents the generic category of group.
This Symbol represents the generic category of groupoid.
This Symbol represents the generic category of integral domain.
This Symbol represents the generic category of monoid.
This Symbol represents the generic category of non-commutative ring.
An ordered Abelian group is an Abelian group
An ordered Abelian group is an ordered group
This Symbol represents the generic category of ordered Abelian group.
An ordered Abelian monoid is an Abelian monoid
An ordered Abelian monoid is an ordered monoid
This Symbol represents the generic category of ordered Abelian monoid.
This Symbol represents the generic category of ordered group.
This Symbol represents the generic category of ordered monoid.
This Symbol represents the generic category of ordered ring.
A ring is a semigroup under multiplication
This Symbol represents the generic category of ring.
This symbol represents the generic category of ringoid.
This Symbol represents the generic category of semigroup.
Written by A. Solomon on 1998-11-19 Modified by David Carlisle 1998-04-28 This is the old version of group1. It is now deprecated in facour of the Cds in the riaca_algebra CD group.
This is the constructor for a character table. Usage: CharacterTable(centralizer_primes, centralizer_indices, classnames, power_map, irreducibles_matrix) If G has n conjugacy classes then: * centralizer_primes is of the form [p1, .., pk] i < j implies that pi < pj and the pi are precisely the primes which divide the order of some centralizer of a conjugacy class * centralizer_indices is of the form [[i11, ...,i1k] ... [in1,...ink]] so the centralizer of class 1 has order p1^i11 ... pk^i1k etc * classnames is a list of n strings which name the conjugacy classes in line with the convention used in the Atlas of Finite Groups * power_map is of the form [list1, ..., listk] where listi[j] is the name of the class where elements of class j go when raised to the power pi. * irreducibles_matrix: rows correspond to irreducible characters, columns are conjugacy classes. Entries are the value of an element of the column's conjugacy class under the character of the row.
Refers to the character table of its argument which must be a group.
The conjugacy class in G with respect to h = {g^(-1) h g | g in G}
The binary function whose value is the set of elements which are conjugate to the second argument in the first.
A group is closed under its operation. A groups operation is associative. A group has an identity element. Every element of a group has an inverse.
This symbol is a constructor for groups. It takes four arguments in the following order; a set to specify the elements in the group, a binary operation to specify the group operation, a unary operation to specify inverses of group elements and an element to specify the identity. Both the binary and unary operations should act on elements of the set and return an element of the set.
This example represents the group which has as elements all positive and negative even numbers, the group operation is binary addition, inverses are the negative of the element and the identity is the zero element.
d in the derived subgroup of G implies there exist x,y in G such that d=x y x^(-1) y^(-1)
The unary function whose value is the subgroup of argument generated by all products of the form xyx^-1y^-1.
The unary function which returns the set of elements of a group.
The n-ary function Group. The group generated by its arguments. The arguments must have a natural group operation associated with them.
If is_abelian(G) then for all a,b in element_set(G) a*b = b*a
The unary boolean function whose value is true iff the argument is an abelian group
is_normal(G,H) implies that for all g in G and h in H then g^-1*h*g is in H
If G, H are the group arguments, then IsNormal(G,H) returns true precisely when G is normal in H. That is, g^-1*h*g is defined and contained in H for all h in H and g in G.
A is a subgroup of B implies element_set(A) is a subset of element_set(B)
The binary function whose value is true if the second argument is a subgroup of the first.
n in the normal closure (A,B) implies there exists a in A and b in B s.t. n = b^(-1) a b
The binary function whose value is the set of conjugates of the elements of the second group by elements of the first, where multiplication between them is defined.
The binary function whose value is the factor group of the first argument by the second, assuming the second is normal in the first.
The binary function whose value is a set of representatives for the right cosets of the second argument as a subgroup of the first.
The largest p-subgroup of the argument (up to conjugacy).
This CD defines symbols for handling directed and undirected graphs. Authored by Hans Cuypers and Erik Postma. This version is edited by amc; bugfix JHD after Robbins.
This symbol represents the set of arrows of a directed graph. It takes one argument, the directed graph.
The arrow set of the loop consists of one loop.
This symbol refers to a digraph. It has two arguments. The first is the set of vertices, the second is the set of arrows. Arrows are represented by lists of length two, where a list represents the arrow from the first element to the second.
Every edge in an undirected graph Gamma is a subset of the vertex set of size two.
This symbol represents the set of edges of an undirected graph. It takes one argument, the undirected graph.
Given a graph Gamma and two of its vertices v and w, this predicate asserts that they are adjacent.
This symbol represents an undirected graph. It takes two arguments: the vertex set of the graph and the edge set. The vertices can be arbitrary OpenMath objects. Each edge should be a set consisting of two vertices.
Given an arrow, this symbol refers to the vertex where the arrow starts. It takes one argument, the arrow.
Given an arrow, this symbol refers to the vertex the arrow points to. It takes one argument, the arrow.
This symbol represents the vertex set of a (directed or undirected) graph. It takes one argument, the graph.
If Gamma is a graph, the following function tests whether its argument v is a vertex of Gamma.
This CD defines symbols for handling directed and undirected graphs. Authored by Arjeh---to be merged with version of Erik Postma.
This symbol is a unary function whose argument is an undirected graph. When applied to an undirected graph G, it represents the automorphism group of G. The resulting automorphism group is represented as a permutation group on the vertices of the graph G.
The automorphism group of a path of length 2 (on three nodes) is the permutation group of order two interchanging the two end nodes.
This symbol is a boolean function with two arguments. The first is a graph M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a graph automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a graph M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a graph endomorphism from M to M.
If is_homomorphism(M,N,f) then, for each pair of vertices x, y of M, we have if {x,y} is an edge of M, then {f(x), f(y)} is an edge of N.
This symbol is a boolean function with three arguments. The first and arguments are graphs M, N, the third is a map f from the vertex set of M to the vertex set of N. When applied to M, N, and f, it denotes that f is a graph homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are graphs M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a graph isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are graphs. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
A CD of basic functions for group theory
Written by A. Solomon on 1998-11-19 Modified by David Carlisle 1998-04-28 Severely edited by Arjeh M. Cohen in 2003
This symbol represents a unary function, whose argument should be a group G (for instance constructed by group). When applied to G, its value should be the set of elements of G.
The carrier of group(G,*,e,inverse) is G.
This symbol is a function with two arguments. Its first argument should be a group. The second should be an arithmetic expression A, whose operators are times and power, and whose leaves are members of the carrier of G. When applied to G and A, it denotes the element (of G) that is obtained from the leaves of A by applying the multiplication and the power map of G instead of the times and power from the CD arith1 appearing in A. The symbol alg1.one occurring in A will be interpreted as the identity of G.
This symbol is a constructor for groups. It takes four arguments in the following order: a set to specify the elements in the group, a binary operation to specify the group operation, an element to specify the identity, and a unary operation to specify inverses of group elements. Both the binary and unary operations should act on elements of the set and return an element of the set.
This symbols represents a unary function, whose argument should be a group. It returns the identity element of the group.
The identity of group(G,*,e,inverse) is e.
This symbol represents a unary function, whose argument should be a group G. It returns the map sending an element of G to its inverse.
The inversion of group(G,*,e,inverse) is inverse.
The unary boolean function whose value is true iff the argument is a commutative group.
is_normal(G,H) implies that for all g in G and h in H then inverse(g)*h*g is in H.
If G, H are the group arguments, then IsNormal(G,H) returns true precisely when H is normal in G. That is, inverse(g)*h*g is defined and contained in H for all h in H and g in G.
If is_subgroup(G,H) then H is a nonempty set of elements of G and H is closed under multiplication and taking inverses.
The binary boolean function whose value is true iff the second argument is a subgroup of the second.
This symbol is a unary function, whose argument should be a group G. When applied to G its value is the monoid underlying G.
This symbol represents a unary function, whose argument should be a group G. It returns the multiplication map on G. We allow for the map to be n-ary.
The multiplication of group(G,*,inverse,e) is *.
This is a symbol with three arguments. The first argument is a group G. Its second argument is an element g of G and the third argument is an integer k. It denotes the element g^k in G.
This symbol is a constructor symbol with one or two arguments. The first argument is a list or set, D, of group elements. The optional second argument is the group G containing D. It denotes the subgroup of G generated by D.
This example represents the subgroup of the multiplicative group of the nonzero reals generated by the constants Pi and E:
A CD of functions like homomorphisms for groups
Written by Arjeh M. Cohen 2004-02-20. Edited AMC 2004-03-02
This symbol is a function with two arguments, which should be a group M and an element x of M. When applied to M and x, it denotes conjugation on M by x.
This symbol is a boolean function with two arguments. The first is a group M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a group automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a group M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a group endomorphism from M to M.
This symbol is a boolean function with three arguments. The first two arguments are groups M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a group homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are groups M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a group isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are groups. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
This symbol is a function with two arguments, which should be a group M and an element x of M. When applied to M and x, it denotes left multiplication on M by x.
right_inverse_multiplication(M,x) (y) = y * x^(-1).
This symbol is a function with two arguments, which should be a group M and an element x of M. When applied to M and x, it denotes right multiplication on M by the inverse of x.
This symbol is a function with two arguments, which should be a group M and an element x of M. When applied to M and x, it denotes right multiplication on M by x.
This symbol is a function with one argument, which should be a vector space or a module V. When applied to V it represents the group of all invertible linear transformations of V.
This symbol is a function with two arguments. The first should be a positive integer n, the second a field F. When applied to n and F it represents the group of all invertible linear transformations of the vector space over F of dimension n.
This symbol is a function with one argument, which should be a a module V over a commutative ring. When applied to V it represents the group of all invertible linear transformations of V of determinant 1.
This symbol is a function with two arguments. The first should be a positive integer n, the second a field F. When applied to n and F it represents the group of all invertible linear transformations of the vector space over F of dimension n having determinant 1.
This symbol is a function with one argument, which should be a set X. When applied to a set X it represents the group of all even permutations on X .
This symbol is a function with one argument, which should be a natural number n. When applied to n it represents the group of all even permutations on the set {1,2, ...,n}.
This is a function with a single argument which must be a group. It refers to the automorphism group of its argument.
d is in the center of G if and only if for all g in G we have g d= d g.
This symbols represents a unary function whose argument should be a group G. Its value is the biggest subgroup of G all of whose elements commute with all elements of G.
d is in the centralizer of g in G if and only if g d= d g.
This symbols represents a binary function whose first argument should be a group G and whose second argument should be an element g or a list of elements L of the group G. Its value is the subgroup of G of all elements commuting with g or, if the second argument is a list, all elements of L.
d in the derived subgroup of G if and only if there exist lists x,y of elements of G of equal length such that d is the product x_1 y_1 x_1^(-1) y_1^(-1) ... x_n y_n x_n^(-1) y_n^(-1).
This is a binary function whose first argument should be a group G and whose second argument should be a natural number n. It refers to the direct product of n copies of G.
This is an n-ary function whose arguments must be groups. It refers to the direct product of its arguments.
This symbol represents a unary function. The argument is a list or a set. When evaluated on such an argument, the function represents the free group generated by the entries of the list or set.
This symbol is a function with one argument, which should be a monoid M. When applied to M it represents the group of all invertible elements of M.
d is in the normalizer of X in G if and only if g X= X g.
This symbols represents a binary function whose first argument should be a group G and whose second argument should be a set of elements or a subgroup L of the group G. Its value is the subgroup of G of all elements normalizing L.
This symbol represents a binary function with two arguments, the first is a group G and the second a prime number p. When applied to G and p, it represents a Sylow p-subgroup of G (which is unique up to conjugacy in G).
This symbol is a function with one argument, which should be a set X. When applied to a set X it represents the group of all permutations on X .
The carrier set of symmetric_groupn(k) consists of all permutations with support in the integers {1,...,k}.
This symbol is a function with one argument, which should be a natural number n. When applied to n it represents the group of all permutations on the set {1,2,... ,n}.
Written by Arjeh M. Cohen 2004-03-02. Edited AMC 2004-03-05
x and y are conjugate if and only if there is h in G such that x = h y h^(-1).
This symbol represents a boolean ternary function whose first argument is a group G and whose second and third arguments are elements x and y of G. Its value on G, x, and y is true if and only if x and y are conjugate in G.
The conjugacy class in G of h is the subset {g^(-1) h g | g in G} of G.
This symbol represents a binary function, whose first argument is a group G and whose second argument is an element x of G. Its value on G and x is the set of elements which are conjugate to x in G.
This symbol represents a unary function whose argument should be a group. Its value on a group is a set of representatives of the conjugacy classes of that group.
This symbol represents a unary function whose argument should be a group. Its value on a group is the set of conjugacy classes of that group.
This symbol represents a ternary function whose first argument is a group G, whose second argument is a subgroup H of G, and whose third argument is an element x of G. Its value on G, H, and x is the left coset of H in G containing x, that is, the set x H.
This symbol represents a quaternary function whose first argument is a group G, whose second argument is a subgroup H of G, whose third argument is left_transversal T of H in G, and whose fourth argument is an element of G. It assigns to G, H, T, g the element of t of T representing the left coset of H containing g, that is, t H = g H .
The binary function whose value is the set of left cosets of the second argument in the first.
The binary function whose value is a set of representatives for the left cosets of the second argument as a subgroup of the first.
This symbol represents a ternary function whose first argument is a group G, whose second argument is a subgroup H of G, and whose third argument is an element x of G. Its value on G, H, and x is the right coset of H in G containing x, that is, the set H x.
This symbol represents a quaternary function whose first argument is a group G, whose second argument is a subgroup H of G, whose third argument is right_transversal T of H in G, and whose fourth argument is an element of G. It assigns to G, H, T, g the element of t of T representing the right coset of H containing g, that is, H t = H g.
The binary function whose value is the set of right cosets of the second argument in the first.
A CD of functions for relating group elements to their images in quotients.
The left and right quotients have a natural group structure if and only if H is a normal subgroup of G.
This is a function with three arguments the first two of which must be groups F and K. The third argument should be a set or a list L of ordered pairs (lists of length 2). Each pair [x,y] from L consists of an element x from F and an element y from K. When applied to F, K, and L, the symbol represents the group homomorphism from F to K that maps the first entry x of each pair [x,y] to the second entry y of the same pair.
The image of an element x is the right coset of x with respect to H.
This symbol is a binary function whose first argument is a group G and whose second argument is an subgroup H of G. When applied to G and H, its value is the natural quotient map from G to the quotient group G/H, sending x to the right coset Hx of G.
The image of an element x is the left coset of x with respect to H.
This symbol is a binary function whose first argument is a group G and whose second argument is an subgroup H of G. When applied to G and H, its value is the natural quotient map from G to the quotient group G/H, sending x to the left coset xH of G.
This symbol is a function with one argument, which should be a natural number n. When applied to n it represents the cyclic group of order n.
The dihedral group of order 2n is isomorphic to the group generated by a, b with presentation a^2 = b^n = 1 and a b a = b^(-1).
This symbol is a function with one argument, which should be a positive integer n. When applied to n it represents the dihedral group of order 2n. This is the group of all isometries (including reflections) of the regular n-gon in the plane.
This symbol is a function with one argument, which should be a positive integer. When applied to n it represents the generalized quaternion group of order 4n. This is the group with three generators a, b, and c and relations c = a^2 = b^n, c*a = a*c , b*c = c*b, a*b = b*a*c, and c^2 = 1.
The derived subgroup of Q coincides with the center of Q.
The quaternion group is isomorphic to the group generated by a, b with presentation a^2 = b^2 = aba^(-1)b^(-1) and a^4 = 1.
This symbol represents the quaternion group of order 8.
This CD defines some basic hypergeometric integrals and symbols necessary to define hypergeometric functions. These functions are described in the following books. (1) Handbook of Mathematical Functions, Abramowitz, Stegun (2) Higher transcendental functions. Vol. III. Krieger Publishing Co., Inc., Melbourne, Fla., 1981, Erdlyi, Arthur; Magnus, Wilhelm; Oberhettinger, Fritz; Tricomi, Francesco G. (3) From Gauss to Painleve, Vieweg, Katsunori Iwasaki, Hironobu Kimura, Shun Shimomura, Masaaki Yoshida
beta(p,q)=\frac{gamma(p)gamma(q)}{gamma(p+q)}(p,q \not\in Z_{<=0})
This CD defines the Gauss hypergeometric function, confluent hypergeometric functions, and generalized hypergeometric functions in one variable. These functions are described in the following books. (1) Handbook of Mathematical Functions, Abramowitz, Stegun (2) Higher transcendental functions. Vol. III. Krieger Publishing Co., Inc., Melbourne, Fla., 1981, Erdlyi, Arthur; Magnus, Wilhelm; Oberhettinger, Fritz; Tricomi, Francesco G. (3) From Gauss to Painleve, Vieweg, Katsunori Iwasaki, Hironobu Kimura, Shun Shimomura, Masaaki Yoshida.
hypergeometric0F1(;a;z) =\sum_{n=0}^{+\infty} \frac{1}{pochhammer(a,n)pochhammer(1,n)} z^n
hypergeometric1F1(a,b;z) =\sum_{n=0}^{+\infty} \frac{pochhammer(a,n)}{pochhammer(1,n)pochhammer(b,n)} z^n
Kummer's confluent hypergeometric function.
hypergeometric2F1(a,b,c;z) =\sum_{n=0}^{+\infty} \frac{pochhammer(a,n)pochhammer(b,n)}{pochhammer(c,n)pochhammer(1,n)} z^n
The Gauss hypergeometric function. This function has a branch cut on [1,+infinity).
hypergeometric_pFq(a,b;z) =\sum_{n=0}^{+\infty} \frac{\Pi_i pochhammer(a_i,n)}{\Pi_i pochhammer(b_i,n)pochhammer(1,n)} z^n
Generalized hypergeometric function. This function has a branch cut on [1,+infinity).
This CD defines some supplementary symbols necessary for hypergeon1 and hypergeon2 (hypergeometric series of n variables). These symbols may be included in CD's linalg, logic, poly, and set.
the cartesian product of n copies of the first argument. Binary function.
It returns the kernel of the map defined by a matrix in a specified domain.
The argument is a vector. It replaces positive elements in the vector to zero and negative elements to their absolute values.
multi_power is for using the multi-index notation.
The argument is a vector. It replaces negative elements in the vector to zero.
The word "where" is often used in mathematical expressions to set variables or to say side conditions. CDname logic1.implies can be used for these purposes, but "where" will be more intuitive and more friendly expression for authors.
ICC Typing Attributes for OM Initial version: O. Caprotti (July 1, 1999)
Revised by W.A. Naylor on 2000-02-02 to reflect the name change of setname, also adding CDUses.
Constructor for Inductive Types. Takes arguments the constructor functions for the inhabitants of the type and their signatures.
is the defining mathematical property for the symbolic type nat of the inductively defined natural numbers with 0 and succ as constructor functions.
Inductive definition of natural numbers Initial version: O.C (Jan. 2000)
Attribution tag to denote the type of inductively defined natural numbers. It is also denoted as setname1:N.
Addition of natural numbers defined recursively by using the successor.
Successor function on the natural number. Constructor for the inductively defined natural numbers. Takes argument a a natural number and returns a natural number.
Multiplication of natural numbers defined recursively by using the successor and plus.
The natural number 0, also constant base function for the inductive definition of the type of natural numbers
This CD holds a collection of basic integer functions. This CD is intended to be `compatible' with the corresponding elements in Content MathML.
The symbol to represent a unary factorial function on non-negative integers.
b is a factor of a iff remainder of a divided by b = 0
This is the binary OpenMath operator that is used to indicate the mathematical relationship a "is a factor of" b, where a is the first argument and b is the second. This relationship is true if and only if b mod a = 0.
for all a,b with a,b Integers | a = b * quotient(a,b) + remainder(a,b) and abs(remainder(a,b)) is less than abs(b) and a*remainder(a,b) >= 0
The symbol to represent the integer (binary) division operator. That is, for integers a and b, quotient(a,b) denotes q such that a=b*q+r, with |r| less than |b| and a*r positive.
The symbol to represent the integer remainder after (binary) division. For integers a and b, remainder(a,b) denotes r such that a=b*q+r, with |r| less than |b| and a*r positive.
This CD holds a collection of basic modular arithmetic for integers.
This symbol represents a bivariate function, whose arguments should be integers. If a, m are integers, then class(a,m) denotes the residue class a mod m in setname2.Zm.
For two integers a and b, the number a divides b if and only, in the magma Z with multiplication, a is a left divisor of b.
This symbol represents a bivariate Boolean function, whose arguments should be integers. When applied to integers a and b, it denotes the property that a divides b.
This symbol represents a Boolean valued trivariate function, whose arguments should be integers. When applied to integers a, b, m, it denotes the Boolean evalue of the assertion that a and b are equal modulo m.
This symbol denotes the univariate Euler totient function. If m is an integer, then euler(m) denotes the order of the multiplicative group of invertible elements in the residue class ring Z/mZ.
This symbol represents a univariate function, whose argument should be an integer. When applied to an integer m, it denotes the equivalence relation of being equal modulo m on Z.
This symbol represents a Boolean valued trivariate function, whose arguments should be integers. When applied to integers a, b, m, it denotes the Boolean evalue of the assertion that a and b are not equal modulo m.
This symbol denotes a binary function. Its first argument shoud be a prime number p, the second an integer n. When applied to p and n, it represents the highest power of p occurring in a factorization of n.
This CD holds symbols which describe both discrete and continuous 1-dimensional intervals (with open/closed end points). There is also an oriented_interval, for use in integration
A symbol to denote a discrete 1 dimensional interval from the first argument to the second (inclusive), where the discretisation occurs at unit intervals. The arguments are the start and the end points of the interval in that order.
A symbol to denote a continuous 1-dimensional interval without any information about the character of the end points (used in definite integration). The arguments are the start and the end points of the interval in that order.
A symbol to denote a continuous 1-dimensional interval with both end points included in the interval. The arguments are the start and the end points of the interval in that order.
A symbol to denote a continuous 1-dimensional interval with the first point included in the interval, but the last excluded. The arguments are the start and the end points of the interval in that order.
The continuous interval closed at the lower bound and open at the higher bound [1,10).
A symbol to denote a continuous 1-dimensional interval with the first point excluded from the interval, but the last included. The arguments are the start and the end points of the interval in that order.
The continuous interval open at the lower bound and closed at the higher bound (1,10].
A symbol to denote a continuous 1-dimensional interval with both end points excluded from the interval. The arguments are the start and the end points of the interval in that order.
A symbol to denote a continuous 1-dimensional interval without any information about the character of the end points (used in definite integration). The arguments are the start and the end points of the integration, in either order.
A CD of basic interval type constructors. This CD holds constructors of individual instances of the different types of intervals.
maybe we should also include some 'complex interval' symbols, could have cartesian varieties, i.e. 'square', as well as polar varieties, i.e. 'round'
algebraic interval type has continuous set type
algebraic interval type has real interval type
This symbol represents the type of algebraic intervals.
integer interval type has discrete set type
integer interval type has rational interval type
This symbol represents the type of integer intervals.
This symbol represents the type of intervals.
rational interval type has algebraic interval type
rational interval type has continuous set type
This symbol represents the type of rational intervals.
real interval type has continuous set type
This symbol represents the type of real intervals.
This CD defines symbols to express pathes for integration for complex integral in one variable. Our pathes lie in the one dimensional complex projective space = the Riemann sphere. These pathes are sufficiently rich to express most pathes of integrations in the complex special function theory in one variables. The theory of twisted cycles ([1] and [2]) answers to the question of telling the exact space of cycles (pathes) defined by symbols in this CD. Our symbols are enough to express integral pathes when integrand functions are solutions of ordinary differential equations with polynomial coefficients. The details will be discussed in a separate paper. [1] P.Deligne, Equation differentiel dans le champ complex, Springer Lecture Note in Mathematics, 163. [2] K.Matsumoto, H.Majima, N.Takayama, Quadratic relations for confluent hypergeometric functions. Tohoku Mathematical Journal 52 (2000), 489--514.
The symbol circle(c,r) is the circle in the Riemann sphere of which center is c and the radius is r. The direction of the circle is the counter clockwise. When the center is intpath1.infty, the radius should be given in the standard coordinate t=1/z at the infinity.
The residue of 1/z is equal to 2 pi sqrt(-1).
The symbol circle_with_starting_point(c,r,z0) is the circle in the Riemann sphere of which center is c and the radius is r. The direction of the circle is the counter clockwise and the staring point is z0.
The integral representation of the beta function B(p,q) by the twisted cycle is as follows.
The symbol closed_path(start_end,points_in, points_out) is a closed path with the starting point "start_end". The direction of the path is counter clockwise. It contains the set of points "points_in" in the inside of the path. The winding number of the path for each point in the set points_in is 1. The path is zero homotope in the space (P^1 - points_in).
The infty on the Riemann sphere. When the coordinate of the complex plane is z, we call t=1/z the standard coordinate around the infinity of the Riemann sphere.
The symbol path_in_sector(c,t1,t2) is an outgoing path in a sufficiently small sector with the center c and the angles t1 and t2. The path starts from the point c and it is sufficiently short. When the center is intpath1.infty, the angle should be given in the coordinate t=1/z.
The Airy integral is expressed as follows.
The symbol path_in_sector2(c,t1,t2,z0) is an outgoing path in the sector with the center c and the angles t1 and t2. The path is the segment from the point c to the point z0 which lies in the sector.
The symbol segment(a,b) is the segment from the point a to the point b in the complex plane. If the arguments are sectors given by path_in_sector, it means the segment from a point in the circular border of the sector to a point in the circular border of the another sector.
The beta function B(p,q) [Re(p)>0, Re(q)>0] is defined by the following integral.
Lambda Calculus Initial version: O. Caprotti
The abstraction constructor. It is followed by a list of variables and an OpenMath object.
The type constructor of dependant function space. It binds the (type-attributed) variables in the body, that is an OpenMath object.
The type constructor of non-dependant function space. The first n-1 children denote the types of the arguments, the last denotes the return type. Contrary to sts:mapsto, arguments cannot be variables but have to be OpenMath objects that map to ground OpenMath terms (they contain no variables).
This CD holds the basic notion of the limits of unary functions whilst its variable tend (either from above, below or both sides) to a particular value.
This symbol is used within a limit construct to show the limit is being approached from above. It takes no arguments.
The limit of sin(x) as x tends to 0 from above
This symbol is used within a limit construct to show the limit is being approached from below. It takes no arguments.
The limit of sin(x) as x tends to 0 from below
This symbol is used within a limit construct to show the limit is being approached from both sides. It takes no arguments.
The limit of sin(x) as x tends to 0 from either direction
This symbol is used to denote the limit of a unary function. It takes 3 arguments: the limiting value of the argument, the method of approach (either null, above, below or both_sides) and the function.
This symbol is used within a limit construct to avoid specifying the method of approach to the limit. It takes no arguments.
Operations on Matrices (independent of the matrix representation).
The determinant of an identity matrix is 1
This symbol denotes the unary function which returns the determinant of its argument, the argument should be a square matrix.
This symbol represents the function which allows individual entries to be selected from a matrix. It takes three arguments, the first is the index of the row and the second is the index of the column of the required element, the third argument is the matrix in question. The indexing is one based, i.e. the element in the top left hand corner is indexed by (1,1).
Representation of a specification of selection of the top left hand entry to the matrix M.
This symbol represents the outer product function. It takes two vector arguments and returns a matrix. It is defined as follows: if we write the {i,j}'th element of the matrix to be returned as m_{i,j}, then: m_{i,j}=a_i * b_j where a_i,b_j are the i'th and j'th elements of a, b respectively.
a.b = |a| * |b| * cos(\theta), where \theta is the angle between the two vectors that is |atan(a_2/a_1)-atan(b_2/b_1)|. N.B. The FMP displays the two dimensional case only.
This symbol represents the scalar product function. It takes two vector arguments and returns a scalar value. The scalar product of two vectors a, b is defined as |a| * |b| * cos(\theta), where \theta is the angle between the two vectors and |.| is a euclidean size function. Note that the scalar product is often referred to as the dot product.
This symbol represents a unary function that denotes the transpose of the given matrix or vector
A representation of the equation transpose matrix([0,1],[2,3]) = matrix([0,2],[1,3]) N.B. in this example the row oriented view of matrix construction is being assumed.
This symbol represents the function which allows individual entries to be selected from a vector, or a matrixrow. It takes two arguments. The first argument is the position in the vector (or matrixrow) of the required entry, the second argument is the vector (or matrixrow) in question. The indexing is one based, i.e. the first element is indexed by one.
Representation of a specification of selection of the second element of the specific vector [3,6,9]. N.B. in this example the row oriented view of vector construction is being assumed
Representation of a specification of selection of the second element of the specific matrixrow [0,1,0]. N.B. in this example the row oriented view of matrixrow construction is being assumed
if we write a as [a_1,a_2,a_3] and b as [b_1,b_2,b_3] then the vector product denoted a x b = [a_2b_3 - a_3b_2 , a_3b_1 - a_1b_3 , a_1b_2 - a_2b_1]
This symbol represents the vector product function. It takes two three dimensional vector arguments and returns a three dimensional vector. It is defined as follows: if we write a as [a_1,a_2,a_3] and b as [b_1,b_2,b_3] then the vector product denoted a x b = [a_2b_3 - a_3b_2 , a_3b_1 - a_1b_3 , a_1b_2 - a_2b_1]. Note that the vector product is often referred to as the cross product.
This CD treats matrices and vectors in a row oriented fashion (using matrixrow's).
This symbol is an n-ary matrix constructor which requires matrixrow's as arguments. It is used to represent matrices.
This symbol is an n-ary constructor used to represent rows of matrices. Its arguments should be members of a ring.
Representation of a row of a matrix of length two containing the integers [1,0]
This symbol represents an n-ary function used to construct (or describe) vectors. Vectors in this CD are considered to be row vectors and must therefore be transposed to be considered as column vectors.
An example of vector using n arguments. The specific vector constructed in this example is [3,6,9].
This CD treats matrices and vectors in a column oriented fashion (using matrixcolumn's).
This symbol is an n-ary matrix constructor which requires matrixcolumn's as arguments. It is used to represent matrices.
This symbol is an n-ary constructor used to represent columns of matrices. Its arguments should be members of a ring.
Representation of a column of a matrix of length two containing the integers [1,0]
This symbol represents an n-ary function used to construct (or describe) vectors. Vectors in this CD are considered to be column vectors, and must therefore be transposed to be considered as row vectors.
An example of vector using n arguments. The specific vector constructed in this example is transpose of [3,6,9].
This CD defines symbols for basic linear algebra. Regardless of the way of forming vectors and matrices, this CD deals with eigenvalues, eigenvectors and related concepts.
p(eigenvalue(A,i)) = det(A-eigenvalue(A,i)I) = 0 where p is the characteristic equation of A
This symbol represents the polynomial which appears in the left hand side of the characteristic equation of a matrix. It takes one argument which should be the matrix. A definition of the characteristic equation is given in Elementary Linear Algebra, Stanley I. Grossman in Definition 2 of chapter 6, page 535.
This symbol represents the function which takes one matrix argument and returns the number of columns in that matrix.
Specification of the number of columns in the matrix: [[1 2] [3 4] [5 6]]
A*eigenvector(A,i) = eigenvalue(A,i)*eigenvector(A,i)
This symbol represents the eigenvalue of a matrix. It takes two arguments the first should be the matrix, the second should be an index to specify the eigenvalue. The ordering imposed on the eigenvalues is first on the modulus of the value, and second on the argument of the value. A definition of eigenvalue is given in Elementary Linear Algebra, Stanley I. Grossman in Definition 1 of chapter 6, page 533.
A*eigenvector(A) = eigenvalue(A)*eigenvector(A)
This symbol represents the eigenvector of a matrix. It takes two arguments the first should be the matrix, the second should be an index to specify which eigenvalue this eigenvector should be paired with. The ordering is as given in the eigenvalue symbol. A definition of eigenvector is given in Elementary Linear Algebra, Stanley I. Grossman in Definition 1 of chapter 6, page 533.
This symbol represents the function which takes one matrix argument and returns the number of linearly independent rows (or columns) of that matrix.
This symbol represents the function which takes one matrix argument and returns the number of rows in that matrix.
Specification of the number of rows in the matrix: [[1 2] [3 4] [5 6]]
This symbol represents the function which takes one vector argument and returns the length of that vector.
This CD contains symbols which represent a number of special types of matrix.
The complex conjugate of a Hermitian matrix equals its transpose
The diagonal elements of a Hermitian matrix will be real
This symbol represents a Hermitian matrix, it takes one argument. The argument should be a vector of vectors of values which determine the upper triangle of the matrix. The lower triangle of the matrix is specified by the following relation: M^* = transpose(M), were M^* denotes the matrix consisting of all the complex conjugates of M.
An example to describe the Hermitian matrix: [[1+i , 2+2i] [2-2i, 3+3i]]
The complex conjugate of an anti-Hermitian matrix equals minus its transpose
an anti-hermitian matrix will have zero on the diagonal
This symbol represents an anti-Hermitian matrix, it takes one argument. The argument should be a vector of vectors of values which determine the upper triangle of the matrix. The lower triangle of the matrix is specified by the following relation: - M^* = transpose(M), were M^* denotes the matrix consisting of all the complex conjugates of M. This rules implies that the main diagonal is zero, therefore the argument should not include it.
An example to describe the anti-Hermitian matrix: [[0 , 1+i] [-1+i , 0 ]]
This symbol represents a (p,q) banded matrix, it takes one argument. A (p,q) banded matrix should always be square. The lower non-zero subdiagonal is the first element of the argument, whilst the highest non-zero super-diagonal is given by the last element of the argument. The argument determines the band of possibly non-zero entries which are positioned around the diagonal. It should be a vector of vectors, we note that they will not all be the same length, however the length of the vectors determine p and q. The longest element specifies the diagonal of the matrix and hence the size of the matrix. Every element not in the band is zero.
the rank of a non-zero constant matrix = 1
This symbol represents a matrix which has all entries of the same value. It takes two arguments, the first is the size of the matrix, the second is the constant which determines every element.
given a diagonal matrix, it is equal to its transpose
This symbol denotes an n_ary function which is used to construct an (nxn) diagonal matrix, that is a matrix where every non-diagonal element is zero, the diagonal elements are equal to the n arguments.
The diagonal matrix with diagonal elements [1,2,3]
for all M | identity(rowcount M) * M = M * identity(columncount M) = M
This symbol denotes a unary function which is used to construct an (nxn) identity matrix where n is the single positive integral argument.
A representation of the 2x2 identity matrix [[1,0],[0,1]]
the transpose of a lower-Hessenberg matrix is upper-Hessenberg
This symbol represents a lower-Hessenberg matrix, it takes one argument, the argument is a vector of vectors representing the non-zero elements. The first element of the argument specifies the value of the first super-diagonal, the subsequent elements specify the value of the diagonal and subsequent subdiagonals, all other elements are zero.
A specification of a lower-Hessenberg matrix of dimension 5: [[1 2 0 0 0] [3 4 5 0 0] [6 7 8 9 0] [0 10 11 12 13] [0 0 14 15 16]]
the product of two lower-triangular matrices is lower-triangular
This symbol represents a lower-triangular matrix, it takes one argument. The argument should be a vector of vectors of elements of the matrix.
An example to describe the lower triangular matrix: [[1,0,0] [2,3,0] [4,5,6]]
the scalar matrix of size n, where the scalar multiple is s = s * identity(n)
This symbol represents a matrix which is a scalar constant times the identity matrix. It should take two arguments, the first specifes the number of rows and columns in the matrix respectively and the third specifies the scalar multiplier.
The elements on the diagonal of a skew-symmetric matrix are zero
for a skew-symmetric matrix M, M = - transpose M
This symbol represents a skew-symmetric matrix, it takes one argument. The argument should be a vector of vectors of elements of the matrix. For j>i the ij'th element of the matrix is the (j-i+1)'th element of the i'th element of the argument. This determines the elements above the diagonal of the matrix, the elements below the diagonal of the matrix must conform to the rule M = - transpose M. This rule implies that the elements on the diagonal must be equal to 0, therefore we do not include these in the argument.
for a symmetric matrix M, M = transpose M
the dimension of a symmetric matrix = the length of the vector which defines it
the sum of a symmetric matrix and its transpose is symmetric
This symbol represents a symmetric matrix, it takes one argument. The argument should be a vector of vectors of elements of the matrix. For j>=i the ij'th element of the matrix is the (j-i+1)'th element of the i'th element of the argument. This determines the upper triangle of the matrix, the lower triangle is specified by the rule M = transpose M.
The product of two tridiagonal matrices is tridiagonal
a tridiagonal matrix is a (1,1) banded matrix
This symbol represents a tridiagonal matrix, it takes one argument which should be a vector of vectors which should have three elements. These should be vectors representing the sub-diagonal, the diagonal and the super-diagonal in that order.
the transpose of an upper-Hessenberg matrix is lower-Hessenberg
This symbol represents an upper-Hessenberg matrix, it takes one argument, the argument is a vector of vectors representing the non-zero elements. The first element of the argument specifies the value of the first subdiagonal, the subsequent elements specify the value of the diagonal and subsequent super-diagonals, all other elements are zero.
A specification of an upper-Hessenberg matrix of dimension 5: [[1 2 3 0 0] [4 5 6 7 0] [0 8 9 10 11] [0 0 12 13 14] [0 0 0 15 16]]
the product of two upper-triangular matrices is upper-triangular
This symbol represents an upper-triangular matrix, it takes one argument. The argument should be a vector of vectors of elements of the matrix.
An example to describe the upper triangular matrix: [[1,2,3] [0,4,5] [0,0,6]]
for all M | zero(rowcount M,rowcount M) * M = M * zero(columncount M,columncount M) = zero(rowcount M,columncount M)
for all M | M + zero(rowcount M,columncount M) = M
This symbol denotes a function with two integral arguments m,n which is used to construct an (mxn) zero matrix.
A representation of the 2x2 zero matrix [[0,0],[0,0]]
This CD contains symbols for the construction of some new matrices from old ones.
If A is an m x r matrix B is an n x s matrix, then their Kronecker product is the m n x rs matrix whose i + (k-1) m, j + (l-1) n entry is A_{i,j} B_{k,l},
This symbol denotes a n-nary function which is used to construct the tensor product matrix of its arguments, which must be matrices.
This symbol may be used for representing matrices, it is designed for efficiently representing sparse matrices where every row has at least one non-zero entry. This is an n+1 ary symbol, where n is the number of rows in the matrix. The first argument must be the number of columns in the matrix, every following argument of the symbol must be an application of a sparseMatrixRow symbol which has arguments which are sparseMatrixElement2, one sparseMatrixElement2 element for each row in the matrix, in the order in which they occur in the matrix. Any non-specified entry is implicitly zero.
The matrix $$ \left ( \begin{array}{ccccc} 5&0&0&0&0\\ 0&0&2&0&0\\ 1&0&0&0&0\\ 0&0&0&0&1 \end{array}\right ) $$ may be represented as:
This symbol may be used to represent matrices which have no zero rows, and for which every row is in Z_2 efficiently. The first argument is the number of columns in the matrix, the following arguments are sparseMatrixRow elements where the arguments are sparseMatrixElement4 elements. Any non-specified entry is implicitly zero.
The matrix $$ \left ( \begin{array}{ccccc} 1&0&0&0&1\\ 0&0&1&0&0\\ 0&0&0&1&0\\ 0&0&0&0&1 \end{array}\right ) $$ may be represented as:
This symbol may be used for representing matrices, it is designed for efficiently representing sparse matrices. The symbol is n+2 ary, where the first argument is the number of rows in the matrix, the second argument is the number of columns in the matrix and n is the number of non-zero entries. The following arguments must be applications of the symbol sparseMatrixElement1. Any non-specified entry is implicitly zero.
The matrix $$ \left ( \begin{array}{ccccc} 5&0&0&0&0\\ 0&0&6&0&0\\ 0&0&0&0&0\\ 0&0&0&0&1 \end{array}\right ) $$ may be represented as:
This symbol may be used for representing matrices which have all entries in the modular field Z_2, i.e. 1 or 0. It allows efficient representation of sparse matrices, more so than the 'sparseMatrix' symbol, since the value of the entries with values of 1 need not be stored, only their positions. The symbol is n+2 ary, where the first argument is the number of rows in the matrix, the second argument is the number of columns in the matrix. The following arguments are sparseMatrixElement3 elements described in this content dictionary. Any non-specified entry is implicitly zero.
The matrix $$ \left ( \begin{array}{ccccc} 1&0&0&0&0\\ 0&0&1&0&0\\ 0&0&0&0&0\\ 0&0&0&0&1 \end{array}\right ) $$ may be represented as:
This symbol may be used to represent a non-zero element of a sparse matrix in the following way. It takes three arguments, the first of which represents the column index, the second of which represents the row index and the third represents the value. The indexing is one based; that is an element in the top left position of the matrix will have first and second indices of 1,1 respectively. Applications of this symbol will be expected as arguments of the symbol sparseMatrix in this content dictionary.
This symbol may be used to represent a non-zero element of a sparse matrix in the following way. It takes two arguments, the first of which represents the column index, the second of which represents the value of the element. The row index is deduced from the index of the sparseMatrixRow symbols of which applications of this symbol are arguments. Applications of this symbol occur as arguments of arguments of the symbol nonZeroRowSparseMatrix only.
This symbol may be used to represent a non-zero element of a sparse matrix over Z_2 in the following way. The first and second arguments are the column and row indices of the non-zero elements respectively i.e. elements with value 1. Applications of this symbol occur as arguments of arguments of the symbol sparseMatrix01 only.
This symbol may be used to represent a non-zero element of a sparse matrix over Z_2 in the following way. The single argument is the column index of non-zero elements of the matrix, i.e. elements with value 1. Applications of this symbol occur as arguments of arguments of the symbol nonZeroRowSparseMatrix01 only.
This symbol may be used to represent rows of sparse matrices, it is a fairly general symbol in that it may be used to represent rows of any type of sparse matrix from this CD. However the particular type of sparse matrix must have as elements symbols of the corresponding type, as described in that symbols description.
This symbol denotes a n-nary function which is used to construct the tensor product vector of its arguments, which must be vectors.
This CD contains symbols for the construction of matrices from lists.
If V is a constant vector of length n, with constant value c and i is in the integral interval [1,n] then V.i = c
The constant symbol represents the constant vector. It takes two parameters, the length (dimension) of the vector and the constant value, which all the elements are equal to.
This symbol denotes a binary function. Its first argument must be a ring R, its second argument must be list L of lists of equal lengths whose entries belong to the ring R, up to ring1.expression. When applied to R and L it represents the matrix whose i,j entry consists of the j-th entry from the list L[i]. In particular, the matrix has length(L) rows and length(L[1]) columns.
This symbol denotes a binary function. Its first argument must be a ring R, its second argument must be list L with entries belonging to the ring R, up to ring1.expression. When applied to R and L it represents the vector of the same length as the list L whose i-th coordinate is L[i] (or ring1.expression(L[i])).
The sparse symbol is a constructor for sparse vectors, it is (n+1)-ary, where the first parameter is the length (dimension) of the vector, and every following parameter specifies a possibly non-zero element in the following way. The parameter is a list which should have length two. The first element in the list is the position (one based), whilst the second element in the list is the value. Every other element of the vector is implicitly zero.
This example shows a representation of the sparse matrix $$\left (\begin{array}[c]1\\0\\0\\0\\0\end{array}\right$$
If M is an n*m matrix and V is a zero vector of length m then V*M = V2 where V2 is a zero vector of length n
If M is an n*m matrix and V is a zero vector of length n then M*V = V2 where V2 is a zero vector of length m
If V is a zero vector of length n and V2 is a vector of length n then V+V2 = V2+V = V2
If V is a zero vector of length n and i is in the integral interval [1,n] then V.i = 0
The zero symbol represents the zero vector, it takes one parameter which should be the length (dimension in some terminology) of the vector.
This CD is intended to be `compatible' with MathML list constructs.
This CD is intended to be `compatible' with MathML list constructs. A.M. Cohen slightly edited the description of the suchthat symbol (eq, "the set" replaced by "a set X").
This symbol denotes the list construct which is an n-ary function. The list entries must be given explicitly.
This symbol represents a mapping function which may be used to construct lists; it takes as arguments a function from X to Y and a list over X in that order. The value that is returned is a list of values in Y. The argument list may be a set or an integer_interval.
The list of even values between 0 and 20 in ascending order, that is the values 2x in ascending order, where x ranges over the integral interval [0,10].
This symbol represents the suchthat function which may be used to construct lists; it takes two arguments. The first argument should be a set X which contains the elements of the list, the second argument should be a predicate, that is a function from the set X to the booleans which describes if an element is to be in the list returned.
This example shows how to construct the list of even positive integers less than 100, using the suchthat constructor.
Several basic list functions are given in this CD.
The operation of joining one list to another
This symbol represents the cons list function. It takes 2 arguments: the second must be a list, where the elements have the same type as the type of the first. The function denotes a new list which has the first argument as its first element followed by the elements of the second argument.
This symbol represents a function which returns the first elements of its argument, which should be a list.
Specification of the first element of the list [1,2,3]
This symbol has two arguments, an element and a list. It is used to denote that the element is in the given list.
This symbol takes a positive integer n and a list, and represents the n-th element of that list.
This symbol represents a function which returns a list made up of all the elements except the first of its argument, which should be a list.
Specification of the list [1,2,3], apart from the first element
This symbol is used to denote the number of elements in a list. It is either a non-negative integer.
Several basic list functions related to length are given in this CD.
This symbol takes two arguments both a list. It represents a function which returns a list made up of all the elements of the first list which are not in the second.
Specification of the list [1,..,6], apart from the first 3 elements.
This symbol represents a binary function whose first argument should be a list L and whose second argument should be a positive integer i such that the absolute value of i is in the interval [1..n], where n is the length of L. If i is positive, it returns the i-th entry L[i] of L, if i is negative it returns the (n+1-i)-th entry of L.
The second entry of the list [1,2,3] is 2.
Specification of the second element of the list [1,..,6] counted from the end.
This symbol represents a function whose argument should be a list. It returns the length of its argument.
This symbol represents a function with two arguments, the first of which is a natural number and the second of which is a list. The first argument is the length of the list.
This symbol takes two lists as arguments, L and M say. The second argument is a list containing only entries from [1..n], where n is the length of L. The symbol represents the function which returns a list whose length is equal to the length of M, and having at position k the value of L at position M_k.
This CD holds the basic logic functions.
This symbol represents the logical and function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if all arguments are true or false otherwise.
The condition (A is equivalent to B) is equivalent to the condition that (A implies B and B implies A)
This symbol is used to show that two boolean expressions are logically equivalent, that is have the same boolean value for any inputs.
This symbol represents the boolean value false.
This symbol represents the logical implies function which takes two boolean expressions as arguments. It evaluates to false if the first argument is true and the second argument is false, otherwise it evaluates to true.
This symbol represents the logical not function which takes one boolean argument, and returns the opposite boolean value.
for all a,b | not(a and b)= (not(a) or not(b))
This symbol represents the logical or function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if any of the arguments are true or false otherwise.
This symbol represents the boolean value true.
This symbol represents the logical xor function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if there are an odd number of true arguments or false otherwise.
This CD holds the symbols for constructing formal proofs in the (classical) propositional and predicate calculus (first-order).
This symbol represents the generation of a line of a proof by application of Generalisation. The first argument is the new well-formed formula (forall x.B) and the second is the line number in the proof for B.
This symbol represents that a wellformed formula is a hypothesis of a deduction of the propositional or predicate calculus.
This symbol represents the generation of a line of a proof by application of Modus Ponens. The first argument is the new well-formed formula (B), the second is the line number in the proof for A and the third is the line number in the proof for A implies B.
This symbol represents a line in a formal proof which is an instance of an axiom. The first child is the line in the proof: the second is the axiom used.
Note how the issue of substitution is dealt with in the specification of axiom 4 of the predicate calculus. Essentially, it has to be assumed that beta-reduction takes place when the axiom is instantiated.
This symbol is used to claim, with proof (the third child), that a statement (the first child) is a deduction of the classical predicate calculus, i.e. that it follows by applications of Modus Ponens, forall-introduction and exists-elimination, from instantiations of the axioms (which may be the common three involving applications of Modus Ponens, and generalisation from instantiations of the Axioms (which may be the common three involving 'implies', together with forall-instantiation and moving forall inside implication, but need not be), and the hypotheses (elements of the set which is the second child).
This symbol is used to state, with justification, that a statement is a theorem of the classical first-order predicate calculus, i.e. that it follows by applications of Modus Ponens, and generalisation from instantiations of the Axioms (which may be the common three involving 'implies', together with forall-instantiation and moving forall inside implication, but need not be), and the hypotheses (elements of the set which is the second child).
This symbol is used to claim, with proof (the third child), that a statement (the first child) is a deduction of the classical propositional calculus, i.e. that it follows by applications of Modus Ponens from instantiations of the axioms (which may be the common three involving 'implies', but need not be), and the hypotheses (elements of the set which is the second child).
This symbol is used to state, with proof (the second child), that a statement (the first child) is a theorem of the classical propositional calculus, i.e. that it follows by applications of Modus Ponens from instantiations of the axioms (which may be the common three involving 'implies', but need not be).
This symbol expresses whether or not there is a deduction of the form quoted. Hence for items of type complete_pred_deduction, it is always true
The Deduction Theorem (of propositional calculus).
This symbol expresses whether or not there is a theorem of the form quoted. Hence for items of type complete_prop_theorem, it is always true
This symbol is used to claim that a statement (the first child) is a deduction of the classical predicate calculus, i.e. that it follows by applications of Modus Ponens, forall-introduction and exists-elimination, from instantiations of the axioms (which may be the common three involving applications of Modus Ponens, and generalisation from instantiations of the Axioms (which may be the common three involving 'implies', together with forall-instantiation and moving forall inside implication, but need not be), and the hypotheses (elements of the set which is the second child).
This symbol is used to claim that a statement is a theorem of the classical first-order predicate calculus, i.e. that it follows by applications of Modus Ponens, and generalisation from instantiations of the Axioms (which may be the common three involving 'implies', together with forall-instantiation and moving forall inside implication, but need not be).
This symbol represents a sequence of justified well-formed formulae (i.e. objects of type ProofLine). The single argument is a List of ProofLine objects.
This symbol is used to claim that a statement (the first child) is a deduction of the classical propositional calculus, i.e. that it follows by applications of Modus Ponens from instantiations of the axioms (which may be the common three involving 'implies', but need not be), and the hypotheses (elements of the set which is the second child).
This symbol is used to claim that a statement is a theorem of the classical propositional calculus, i.e. that it follows by applications of Modus Ponens from instantiations of the axioms (which may be the common three involving 'implies', but need not be).
Initiated by Arjeh M. Cohen 2003-10-03 Edited by AMC 2004-0302
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.
If is_associative(G) then for all a,b in carrier(G) (a*b) * c = a*(b*c)
The unary boolean function whose value is true iff the argument is an associative magma.
The unary boolean function whose value is true iff the argument is a commutative magma.
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.
If is_submagma(G,H) then H is a set of elements of G and H is closed under multiplication.
The binary boolean function whose value is true iff the second argument is a submagma of the first.
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.
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.
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.
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.
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.
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.
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.
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.
This example represents the submagma of the multiplicative magma of the nonzero reals generated by the constants Pi and E:
Initiated by Arjeh M. Cohen 2003-10-03 Edited by Arjeh M. Cohen 2004-03-02
This symbol is a boolean function with two arguments. The first is a magma M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a magma automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a magma M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a magma endomorphism from M to M.
This symbol is a boolean function with three arguments. The first and arguments are magmas M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a magma homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are magmas M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a magma isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are magmas. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
Initiated by Arjeh M. Cohen 2003-10-03 Edited by AMC 2004-03-02
This is a function with a single argument which must be a magma. It refers to the automorphism group of its argument.
This is an n-ary function whose arguments must be magmas. It refers to the direct product of its arguments.
This symbol represents a binary function. The argument is a list or a set. When evaluated on such an argument, the function represents the free magma generated by the entries of the list or set.
This CD holds symbols denoting various types of numbers, vectors and similar constructs. Principally these are required for compatibility with MathML.
A symbol to be used within an OpenMath attribute to specify the class attribute of the object. The annotation should be an OpenMath string representing the value of the class attribute.
A symbol to be used within an OpenMath attribute to specify the definitionURL attribute of the object. The annotation should be an OpenMath string representing the value of the definitionURL attribute.
A symbol to be used within an OpenMath attribute to specify an attribute of the object. The annotation should be an quadruple of strings constructed via a head foreign_attribute.
A symbol to be used as the head of the OpenMath application to construct the object used as the value of the foreign attribution. The four arguments of this function should be OpenMath strings representing in order, the Namespace, prefix and local name and value of the MathML attribute.
The MathML attribute xmlns:other="http://example.com" other:att="bla" on the object x may be represented by:
A symbol to be used within an OpenMath attribute to specify the MathML "other" attribute of the object. The annotation should be an OpenMath string representing the value of the other attribute.
A symbol to be used within an OpenMath attribute to specify the style attribute of the object. The annotation should be an OpenMath string representing the value of the style attribute.
MathML3 and OpenMath provide semantic annotation facilities where the relation of the annotation to the annotated object is specified by special symols called keys. This content dictionary provides some keys for specifying the relations in semantic annotations.
This key specifies that the corresponding value is an alternate representation of the annotated element in some unspecified way.
An OpenMath expression and one of its alternate representations: the presentation MathML delivered in the context of a spanish speaking user.
This key specifies that the corresponding value is an alternate representation of the annotated or attributed expression, it is expected that the encoding of the annotation is read either from the annotation content: in the case of MathML's annotation elements and in the case of the OMFOREIGN OpenMath expression, the encoding is provided as an attribute value. This annotation key is used as the default relation for annotation and annotation-xml elements of MathML 3 that do not specify keys.
This key specifies that the corresponding value is the content MathML equivalent of the annotated element.
A symbol to be used as the argument of the type symbol to convey the type of a complex number specified in terms of its real and imaginary parts.
The variable z is attributed with a type for complex numbers represented in their Cartesian form.
A symbol to be used as the argument of the type symbol to convey the type of a complex number specified in terms of its modulus and argument.
The variable z is attributed with a type for complex numbers represented in their polar form.
A symbol to be used as the argument of the type symbol to convey a type for the common constants, pi ~= 3.1415, e ~= 2.718, i = square root of -1, gamma ~= .5772, NaN, infinity (all in the nums cd), true and false (in the logic cd). Also for MathML variables declared to have type constant, as in x .
The variable z is attributed with a type for constants.
A symbol to be used as the argument of the type symbol to convey the type for a function name.
The variable f is attributed to say it represents a function.
A symbol to be used as the argument of the type symbol to convey the type of an integer.
The variable z is attributed with a type for integers.
A symbol to be used as the argument of the type symbol to convey the type for a list.
The variable z is attributed with a type for lists.
A symbol to be used as the argument of the type symbol to convey the type for a matrix (n tuple of rows, where each row is an m tuple for some m, it should be noted that each row must be the same length).
The variable z is attributed with a type for matrices.
A symbol to be used as the argument of the type symbol to convey the type of a rational number.
The variable z is attributed with a type for rational numbers.
A symbol to be used as the argument of the type symbol to convey the type of a real number.
The variable z is attributed with a type for real numbers.
A symbol to be used as the argument of the type symbol to convey the type for a set.
The variable z is attributed with a type for sets.
A symbol to be used within an OpenMath attribute to specify the type of the object.
The variable z is attributed with a type for complex numbers, to be represented in polar notation.
A symbol to be used as the argument of the type symbol to convey the type of a (column) vector, an n-tuple of entries.
The variable z is attributed with a type for vectors.
This is a content dictionary to represent content dictionaries, so that they may be passed between OpenMath compliant application in a similar way to mathematical objects. The information written here is taken from chapter 4 of the current draft of the "OpenMath Standard".
The top level element for the Content Dictionary. It just acts as a container for the elements described below.
An optional element. If it is used it contains a string representing the URI to be used as the base for generated canonical URI references for symbols in the CD.
This symbol is used to represent the element of a content dictionary which explains some aspect of that content dictionary. It should have one string argument which makes that explanation.
An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary was last edited.
This symbol is used to represent the element which contains the definition of each symbol in a content dictionary. That is: it must contain a 'Name' element and a 'Description' element, and it may contain an arbitrary number of 'Example', 'FMP' or 'CMP' elements.
An element which contains the string corresponding to the name of the CD. The string must match the syntax for CD names given in the OpenMath Standard. Here and elsewhere white space occurring at the beginning or end of the string will be ignored.
An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary is next scheduled for review. It should be expected to be stable until at least this date.
An element which contains a revision number (or minor version number) This should be a non-negative integer starting from zero for each new version. Additional examples would be typical changes to a CD requiring a new revision number.
An element giving information on the status of the CD. The content of the element must be one of the following strings. official (approved by the OpenMath Society), experimental (currently being tested), private (used by a private group of OpenMath users), or obsolete (an obsolete CD kept only for archival purposes).
An optional element. If it is used it contains a string representing the URL where the canonical reference copy of this CD is stored.
An element which contains zero or more CDNames which correspond to the CDs that this CD depends on, i.e. uses in examples and FMPs. If the CD is dependent on any other CDs they may be present here.
An element which contains a version number for the CD. This should be a non negative integer. Any change to the CD that affects existing OpenMath applications that support this CD should result in an increase in the version number.
An optional element (which may be repeated many times) which contains a string corresponding to a property of the symbol being defined.
An element which contains a string corresponding to the description of either the CD or the symbol (depending on which is the enclosing element).
An element which contains an arbitrary number of children, each of which is either a string or an OpenMath Object. These children give examples in natural language, or in OpenMath, of the enclosing symbol definition.
An optional element which contains an OpenMath Object. This corresponds to a property of the symbol being defined.
An element containing the string corresponding to the name of the symbol being defined. This must match the syntax for symbol names given in the OpenMath Standard. Here and elsewhere white space occurring at the begining or end of the string will be ignored.
An element containing the string corresponding to the role of the symbol being defined.
This CD holds symbols for making meta statements about categories
This symbol is intended to denote the type of a category.
These objects have categories as there types and specific implementations of their functions. *** details to be worked out *** *** for now *** The first argument is a Category, the remaining arguments are the functions (e.g. lambda bindings or unapplied functions).
This symbol represents the notion of category inclusion. It takes two arguments, which should both be categories. It implies that axioms of the second argument apply to the first, and that function signatures in the second category are also in the first.
This symbol is unary and returns the type of its argument.
This is a content dictionary to represent Content Dictionary Group Files, so that they may be encoded as OpenMath Objects, which is a possible way of passing this information between OpenMath Applications.
This symbol is used to represent the element of a CDGroup which explains some aspect of the corresponding content dictionary. It should have one string argument which makes that explanation.
This symbol represents the outermost element of a CDGroup. It has an arbitrary number of arguments which may be elements of type corresponding to the other symbols defined in this file.
This symbol represents the element of a CDGroup which describes the CDGroupDescription element. It has one string argument, this should be the contents of the CDGroupDescription element intended to describe the mathematical area of the CDGroup.
This symbol represents the element of a CDGroup which describes each CDGroupMember element. It has one string argument, this should be the contents of the intended CDGroupMember element of the CDGroup. This should be used to identify each member of the CDGroup.
This symbol represents the element of a CDGroup which describes the name of that CDGroup, it has one argument that should be a string corresponding to the name. The syntactical requirements are given in the OpenMath standard.
This symbol represents the element of a CDGroup which describes the CDGroupURL element. It has one string argument which should describe the URL for that CDGroup, not necessarily for the member Content Dictionaries, The syntactical requirements are given in the OpenMath standard.
This symbol represents the element of a CDGroup which describes each CDName element. It has one string argument, this should be the string corresponding to the name of a content dictionary which is in this CDGroup.
This symbol represents the element of a CDGroup which describes each CDURL element. It has one string argument, this should be the string corresponding to the contents of the CDURL element for each Content Dictionary in the CDGroup. The element is optional, in case it is missing, the location of the CDGroup identified by the element CDGroupURL is assumed.
This symbol represents the element of a CDGroup which describes each CDVersion element. It has one integral argument, this should specify which version of the content dictionary is to be taken as member of the CDGroup. The element is optional. In case it is missing, the last version is the one included in the CDGroup.
This is a content dictionary to represent Content Dictionary Signature Files, so that they may be encoded as OpenMath Objects, which is a possible way of passing this information between OpenMath Applications.
This symbol is used to represent the element of a signature file which explains some aspect of that signature file. It should have one string argument which makes that explanation.
This symbol is used to represent the element of a signature file which specifies the earliest possible revision date of the signature file. It should have one string argument which specifies that date. The date should be in the format YYYY-MM-DD, e.g. 2000-02-29.
This symbol is used to represent the element of a signature file which specifies the status of that signature file. It should have one string argument, which should be one of 'official' (approved by the OpenMath Society according to the procedure outlined in the OpenMath standard), 'experimental' (currently being tested), 'private' (used by a private group of OpenMath users) or 'obsolete' (an obsolete signature file, kept only for archival purposes).
This symbol is used to represent the outermost element of the Signature File which is characterized by two required attributes that identify the type system and the Content Dictionary whose signatures are defined. The value of the XML attribute 'type' is the name of the Content Dictionary or of the CDGroup that represents the type system. The value of the XML attribute 'cd' is the name of the Content Dictionary whose symbols are assigned signatures in this Signature File. It has an arbitrary number of arguments which may be elements of type corresponding to the other symbols defined in this file.
This symbol is used to represent the element of a signature file which specifies the signature of a symbol. It should take two string children, the first should be the symbol who's signature is being specified, the second should be an 'OMOBJ' element which specifies the signature. Additionally the second argument should specify an object which must represent a valid type in the type system identified by the XML attribute 'type' corresponding to the element which corresponds to the symbol 'CDSignatures' enclosing this symbol.
This CD holds the definitions of min and max.
This symbol denotes the unary maximum function which takes a set as its argument and returns the maximum element in that set.
Representation of the equation maximum{1,9,5} = 9.
This symbol denotes the unary minimum function which takes a set as its argument and returns the minimum element in that set.
Representation of the equation minimum{1,9,5} = 1.
Initiated by Arjeh M. Cohen 2003-05-17 Edited by AMC 2004-03-02
This symbol represents a unary function, whose argument should be a monoid M (for instance constructed by monoid). When applied to M, its value should be the set of elements of a monoid.
This symbol is a ternary function. Its first argument should be a monoid 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 divisor of b in M. This means that there are u,v in carrier(M) such that uav=b.
This symbol is a function with two arguments. Its first argument should be a monoid. The second should be an arithmetic expression A, whose operators are times and power, and whose leaves are members of the carrier of G. The second argument of power should be nonnegative. When applied to G and A, it denotes the element (of G) that is obtained from the leaves of A by applying the multiplication and the power map of G instead of the times and power from the CD arith1 appearing in A. The symbol alg1.one occurring in A will be interpreted as the identity of G.
This symbols represents a unary function, whose argument should be a monoid. It returns the identity element of the monoid.
This symbol is a unary function. Its argument should be a monoid M. When applied to M, it denotes the submonoid of M consisting of all invertible elements in M. This is a group.
If is_commutative(M) then for all a,b in carrier(M) a*b = b*a
The unary boolean function whose value is true iff the argument is a commutative monoid.
x is invertible in M if and only if there is a in carrier(M) with a*x = x*a = 1.
This symbol represents a binary function, whose first argument is a monoid M and whose second argument is an element x of M. Its value is true iff the argument if x is invertible (that is, has a left and a right inverse) in M.
If is_submonoid(M,N) then N is a nonempty set of elements of M and N is closed under multiplication and taking inverses.
The binary boolean function whose value is true iff the second argument is a submonoid of the second.
A monoid is closed under its operation. A monoid operation is associative. A monoid has an identity element.
This symbol is a constructor for monoids. It takes three arguments in the following order: a set to specify the elements in the monoid, a binary operation to specify the monoid operation, and an element to specify the identity. The binary operation should act on elements of the set and return an element of the set.
This example represents the monoid which has as elements all positive and negative even numbers, the monoid operation is binary addition, inverses are the negative of the element and the identity is the zero element.
This symbol represents a unary function, whose argument should be a monoid M. It returns the multiplication map on M. We allow for the map to be n-ary.
The multiplication of monoid(M,*,e) is *.
The product a_1 * ... * a_n of elements a_1, ..., a_n of M can be expressed as follows.
This symbol is a unary function, whose argument should be a monoid M. When applied to M its value is the semigroup underlying M.
This symbol is a constructor symbol with two arguments. The first argument is a monoid M, the second a list or set, D, of elements of M. When applied to M and D, it denotes the submonoid of M generated by D.
This example represents the submonoid of the multiplicative monoid of the nonzero reals generated by the constants Pi and E:
This symbol is a boolean function with two arguments. The first is a monoid M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a monoid automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a monoid M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a monoid endomorphism from M to M.
This symbol is a boolean function with three arguments. The first and arguments are monoids M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a monoid homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are monoids M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a monoid isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are monoids. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
This symbol is a function with two arguments, which should be a monoid M and an element x of M. When applied to M and x, it denotes left multiplication on M by x.
This symbol is a function with two arguments, which should be a monoid M and an element x of M. When applied to M and x, it denotes right multiplication on M by x.
Initiated by Arjeh M. Cohen 2003-10-02 Edited AMC 2004-03-05 Edited AMC 2004-06-27
This is a function with a single argument which must be a monoid. It refers to the automorphism group of its argument.
This symbol represents a binary concatenation operation on strings.
This symbol is a function of two natural numbers, the first of which should be positive. When evaluated at k and l, it denotes the cyclic monoid with a cycle of length l and a tail (including the identity element) of length k.
This is a binary function whose first argument should be a monoid M and whose second argument should be a natural number n. It refers to the direct product of n copies of M.
This is an n-ary function whose arguments must be monoids. It refers to the direct product of its arguments.
This symbol represents a constant. It represents the empty string.
This symbol represents a unary function. The argument is a list or a set. When evaluated on such an argument, the function represents the free monoid generated by the entries of the list or set.
The left regular representation is a homomorphism of monoids from M to the maps monoid on M.
The left regular representation on M applied to the element x of M represents left multiplication by x on M
This is a unary function whose argument must be a monoid M. When applied to M, it represents the map from M to the maps monoid on M that assigns to m left multiplication by m on M.
This is a unary function whose argument must be a set X or a positive integer. When applied to X, it refers to the monoid of all functions from X to X if X is a set and to {1,...,X} if X is an integer, whose binary operation is composition of maps and whose identity element is the identity map on the set X, respectively {1,...,X}.
This symbol represents a unary function. The argument is a list or a set. When evaluated on such an argument, the function represents the set of all strings whose characters are entries of the list or set.
This symbol represents the error which is returned when an application raises an error due to algorithmic restrictions of the implementations. This includes operations not implemented or partially implemented, divisions by zero and other domain errors. It will have at least one argument, which is a string describing the problem. It may have a second argument which is relevant to the error.
An application returns an 'algorithm' error
multiplication by $\sqrt{-1}$ has not been implemented
This symbol represents the error which is returned when an application encounters some asynchronous error, for example if a limit in memory has been reached, or an error has occurred in some system call (I/O error, disk full, machine down). It should have one argument, which is a string describing the problem.
An application returns an 'asynchronousError' error
This symbol represents the error which is returned when an application detects a lexical or syntactic error. It should have one argument which is a string, which should explain the error that occurred.
An application returns an 'encoding error'
The symbol <OMS cd='arith1' name='plus'/> may not take a String as first argument
This symbol represents the error which is returned when an application reads an error caused by the limitations of an implementation when dealing with OpenMath objects such as limits on the size of objects or on the kind of objects manipulated. This can include limits on the size of a bytearray or integer, a limit on the number of arguments of an application or the inability to deal with Unicode characters outside ISO latin 1. It will have at least one argument, which is a string describing the problem. It may have a second argument which is relevant to the error.
An application returns a 'limitation' error
Integers $> 2^{32}-1$ are meaningless to this application
This symbol represents the error which is returned when an application reads an error caused by an unexpected problem. It will have at least one argument, which is a string describing the problem. It may have a second argument which is relevant to the error.
An application returns an 'unexpected' error
A kill was executed on the process whilst it was evaluating the expression
This CD defines the set functions and constructors for basic multiset theory. It is intended to be `compatible' with the corresponding elements in MathML i.e. set operations acting on sets of type=multiset.
This symbol represents an n-ary construction function for constructing the Cartesian product of multisets. It takes n multiset arguments in order to construct their Cartesian product.
An example to show the representation of the Cartesian product of multisets: AxBxC.
The intersection of A with the empty (multi) set is the empty (multi) set
The union of A with the empty (multi) set is A
This symbol is used to represent the empty multiset, that is the multiset which contains no members. It takes no parameters.
if a is in A and a is in B then a is in A intersection B
This symbol has two arguments, an element and a multiset. It is used to denote that the element is in the given multiset.
(A intersect B) is a subset of A and (A intersect B) is a subset of B
This symbol is used to denote the n-ary intersection of multisets. It takes multisets as arguments, and denotes the multiset that contains all the elements that occur in all of them, with multiplicity the minimum of their multiplicities in all multisets.
This symbol represents the multiset construct. It is either an n-ary function, in which case the multiset entries are given explicitly, or it works on an elements construct. There is no implied ordering to the elements of a multiset.
This symbol has two arguments, an element and a multiset. It is used to denote that the element is not in the given multiset.
This symbol has two (multiset) arguments. It is used to denote that the first multiset is not a proper subset of the second. A proper subset of a multiset is a subset of the multiset but not actually equal to it.
{1,2,1} is not a proper subset of {1,2,1}
This symbol has two (multiset) arguments. It is used to denote that the first multiset is not a subset of the second.
This symbol has two (multiset) arguments. It is used to denote that the first multiset is a proper subset of the second, that is a subset of the second multiset but not actually equal to it.
the difference of A and B is a subset of A
This symbol is used to denote the multiset difference of two multisets. It takes two multisets as arguments, and denotes the multiset that contains all the elements that occur in the first multiset with strictly greater multiplicity than in the second. The multiplicity in the result is the difference of the two.
This symbol is used to denote the number of elements in a multiset. It is either a non-negative integer, or an infinite cardinal number. The symbol infinity may be used for an unspecified infinite cardinal.
if B is a subset of A and C is a subset of B then C is a subset of A
This symbol has two (multiset) arguments. It is used to denote that the first set is a subset of the second, i.e. every element of the first occurs with multiplicity at least as much in the second.
A is a subset of (A union B) and B is a subset of (A union B)
for all sets A,B and C union(A,intersect(B,C)) = intersect(union(A,B),union(A,C))
This symbol is used to denote the n-ary union of multisets. It takes multisets as arguments, and denotes the multiset that contains all the elements that occur in any of them, with multiplicity the sum of all the multiplicities in the multiset arguments.
This CD contains descriptors of tolerances (errors) for numerical methods. Note that there are two kinds: the (input) request for a computation within a certain error bound, and an (output) estimated bound for the error. Either kind can be relative or absolute. While it would be normal to respond to a relative_error_requested with a relative_error_bound, this might be meaningless if |computed| is small, so an absolute_error-bound might be the right response.
This symbol marks an estimated upper bound for the absolute error ( |true-computed| ) on a computation.
This symbol marks a requirement for the absolute error ( |true-computed| ) on a computation.
This symbol marks an estimated upper bound for the relative error ( |true-computed|/|computed| ) on a computation.
This symbol marks a requirement for the relative error ( |true-computed|/|computed| ) on a computation.
This CD contains descriptors of symbols used by search-based numerical algorithms.
This symbol is used to describe the minimum distance between two distinct objects, i.e. if the distance is less than this they are considered to be the same.
This symbol marks an initial value for a parameter, for example this could be the point from which a newton iteration would start.
This CD is intended to be `compatible' with the MathML view of constructors for numbers (integers to an arbitrary base, rationals) and symbols for some common numerical constants. This CD holds a set of symbols for creating numbers, including some defined constants (i.e. nullary constructors).
A symbol to convey the notion of not-a-number. The result of an ill-posed floating computation. See IEEE standard for floating point representations.
This symbol represents the constructor function for floating point numbers, specifying the base. It takes two arguments, the first is a positive integer to denote the base to which the number is represented, the second argument is a string which contains an optional sign and the digits of the number, using 0-9a-z and optionally a "." (as a consequence of this no radix greater than 36 is supported).
A representation of 8.5 (radix 10) base 8
This symbol represents the constructor function for integers, specifying the base. It takes two arguments, the first is a positive integer to denote the base to which the number is represented, the second argument is a string which contains an optional sign and the digits of the integer, using 0-9a-z (as a consequence of this no radix greater than 36 is supported). Base 16 and base 10 are already covered in the encodings of integers.
e = the sum as j ranges from 0 to infinity of 1/(j!)
This symbol represents the base of the natural logarithm, approximately 2.718. See Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1.
2.718 = The decimal approximation to 3 significant places of e
gamma = limit_(m -> infinity)(sum_(j ranges from 1 to m)(1/j) - ln m)
A symbol to convey the notion of the gamma constant as defined in Abramowitz and Stegun, Handbook of Mathematical Functions, section 6.1.3. It is the limit of 1 + 1/2 + 1/3 + ... + 1/m - ln m as m tends to infinity, this is approximately 0.5772 15664.
0.577 = The decimal approximation to 3 significant places of gamma
This symbol represents the square root of -1.
A symbol to represent the notion of infinity.
pi = 4 * the sum as j ranges from 0 to infinity of ((1/(4j+1))-(1/(4j+3)))
A symbol to convey the notion of pi, approximately 3.142. The ratio of the circumference of a circle to its diameter.
3.142 = The decimal approximation to 3 significant places of pi
This symbol represents the constructor function for rational numbers. It takes two arguments, the first is an integer p to denote the numerator and the second a nonzero integer q to denote the denominator of the rational p/q.
A representation of the rational number 1/2
Types for OM Declaration of symbols for names of types of OpenMath objects An OpenMath object which uses any of the symbols here defined, has to use them in accordance with their description. Initial version: O. Caprotti
The type of symbolic types introduced in other CDs
This CD contains constructors for the operators used to describe the operations corresponding to operation nodes which occur in straight line programs.
A constant value, constructs the divide for division nodes.
A constant value, constructs the minus for subtraction nodes.
A constant value, constructs the plus for addition nodes.
A unary function, takes a node of an slp, returns the value of the polynomial which corresponds to this node of the slp.
A constant value, constructs the times for multiplication nodes.
A CD of functions for permutation groups
First version written by A. Solomon 1998-11-19. Modified by David Carlisle 1999-04-28. Rebuilt by Arjeh M. Cohen 2002-12-16.
This is a function with one argument, which should be a permutation group. When evaluated with argument G it returns a list of points permuted by G such that the stabilizer of all elements of the list in G is trivial. Besides, the list is minimal with respect to the latter property (in the sense that the stabilizer in G of the elements of no proper subset is trivial).
The following expression represents a base.
This is a function with one argument, which should be a permutation group. When evaluated with argument G it returns the list of permutations which occur in the definition of G.
The following expression evaluates to the list of permutations [(1,5,4)(2,6),(3,6)(1,4,5)].
This symbol represents an n-ary function. The first argument is a group operation (usually, left_compose or right_compose), the other n-1 arguments represent permutations. When evaluated on such arguments, the function represents the permutation group generated by the last n-1 arguments.
The permutation group generated by (1,5,4)(2,6) and (1,4,5)(3,6)
This is a Boolean function with two arguments. The first argument should be a permutation, the second a permutation group. When evaluated with first argument x and second argument G, it returns true if and only if x belongs to G.
The following expression evaluates to the boolean false.
The unary function with one argument, which should be a permutation group. Its value is true if and only if G acts primitively on the support of G. This means that there is no proper subset B of the support of G with more than one element such that the image of B under an element of G meets B in a proper nonempty subset of B.
The following expression evaluates to the boolean true.
This is a Boolean function with two arguments, both of which are permutation groups. When evaluated with first argument H and second argument G it returns true if and only if H is a subgroup of G.
This is a Boolean function with one argument, which should be a permutation group. When evaluated at a permutation group G, it returns the value true if and only if the permutation group argument acts transitively on the support of G.
The binary function whose first argument should be a permutation group G. If the second argument is an element of the support of G, the value is the orbit of the second argument under the action of G. Otherwise, it is the singleton consisting of the second argument.
The following expression evaluates to the set {2,3,6}.
This is a function with one argument, which should be a permutation group. When evaluated at a permutation group G, it returns the set of all orbits of G on elements from the support of G.
The following expression evaluates to the list of sets [{2,3,6},{1,4,5}].
This is a function with one argument, which should be a permutation group. When evaluated with argument G it returns the size of the group G.
The following expression evaluates to 18.
This is a function with two arguments. The first argument should be a permutation group G, the second argument a point x permuted by G. When evaluated at G and x, it returns a list of three lists X,V,B. The first list, X, enumerates the points of the G-orbit of x. The second list and the third list both have the same length as X, say n. The second list represents a map V from [1,...,n] to {-m,...,-1,0,1,...,m}, where m is the number of generators of G, and the third list represents a map B from [1,...,n] to X. These maps satisfy the following properties: X(1) = B(1) = x. Moreover, V(i) = 0 if and only if i = 1. For each index i distinct from 1, the value B(i) is equal to X(j) for some index j smaller than i. If V(i) is positive, then X(i) is the image of B(i) under the V(i)-th generator of G. If V(i) is negative, then B(i) is the image of X(i) under the (-V(i))-th generator of G.
The following expression represents a Schreier tree.
This is an n-ary function with n at least 2. The first argument is a permutation group G, the other arguments are elements x_2,x_3,...,x_n upon which G acts. The value is the subgroup of G consisting of all permutations which stabilize each of x_2,x_3,...,x_n.
The following expression stands for the stabilizer of 1 and 2 in the permutation group generated by the permutations (1,5,4)(2,6) and (3,6)(1,4,5).
This function takes one argument which should be a permutation group. When applied to the permutation group G, its value is a list consisting of two lists B, H of equal length. The first list B is a base for G, whereas the i-th entry H[i] of the second list is the stabilizer in G of the elements B[1], ..., B[i].
The following expression represents a stabilizer chain.
This represents a unary function whose argument should be a permutation group. When evaluated at a permutation group G, it is the set of points which are moved a member of G.
The following expression evaluates to the set {1,2,3,4,5,6}.
A CD of functions for permutation groups. Primarily for defining the best known permutation groups.
This symbol represents a unary function. Its argument is either a positive integer or a set. When evaluated on a set, it represents the permutation group of all even permutations of that set. When evaluated on a positive integer n, it represents the permutation group of all even permutations of the set {1,..., n}.
The permutation group generated by (1,2,3) and (3,4,5) is equal to the alternating group on {1,2,3,4,5}.
This symbol represents a unary function whose argument should be a positive integer. When evaluated at the integer n, it represents the permutation group generated by the permutation (1,2,...,n).
The group is generated by the permutations (1,2,...,n) and (1,n)(2,n-1)(3,n-3) ....(n/2-1/2,n/2+1/2) if n is odd and by the permutations (1,2,...,n) and (1,n)(2,n-1)(3,n-3) ....(n/2-1,n/2+1) if n is odd.
This symbol represents a unary function whose argument should be a positive integer. When evaluated at the integer n, it represents the dihedral group of all 2n permutations of {1,2,...,n} preserving the n-gon 1,2,...,n.
The dihedral group on 3 (letters) coincides with the symmetric group on 3 (letters).
This symbol represents the quaternion group of order 8, viewed as a permutation group by means of the regular representation (multiplication from the right). It is generated by (1,2,3,4)(5,8,6,7) and (1,5,2,6)(3,7,4,8). (In the usual notation, the 8 elements are 1, -1, i, -i, j, -j, k, -k.)
This symbol represents a unary function. Its argument is either a positive integer or a set. When evaluated on a set, it represents the permutation group of all permutations of that set. When evaluated on a positive integer n, it represents the permutation group of all permutations of the set {1,..., n}.
The permutation group generated by (1,2) and (2,3) is equal to the symmetric group on {1,2,3}.
This symbol represents the Klein Vierer group of order 4, viewed as a permutation group of degree 4. It consists of the identity, (1,2)(3,4), (1,3)(2,4), and (1,4)(2,3).
Written by A. Solomon on 1998-11-19 Modified by David Carlisle 1999-04-28
The unary function whose value is true iff its permutation group argument acts primitively.
The unary function whose value is true iff the permutation group argument acts transitively.
The binary function whose value is the set of integers which are in the orbit of the second argument under the action of the first argument which is a permutation group.
The first argument is a permutation group, the second is some object (point or set) upon which the first argument acts. The value is the subgroup of the first argument which stabilize the second argument.
Written by A. Solomon on 1998-11-19 Modified by David Carlisle 1999-04-28 Renamed from comb to permut1 1999-05-19 Modified by A. Solomon to remove ambiguity from definition of Permutation as reported by JHD 2000-02-05.
permutation(2,3,...,n, 1)^n = permutation()
The n-ary constructor permutation. The arguments are the integers 1 .. n in some order. permutation(p1, ..., pn) is the function which takes 1 to p1, 2 to p2 and so on.
This CD defines permutations with finite support. In order to make available permutations of arbitrary objects, permutations are defined as sets of cycles. The set on which the permutation acts is not specified. To this end, cycles of length 0 or 1 do not occur in permutations. When viewed as the set of cycles which are its arguments, the symbol permutation has a normal form constructor.
This CD defines permutations with finite support. In order to make available permutations of arbitrary objects, permutations are defined as sets of cycles. The set on which the permutation acts is not specified. To this end, cycles of length 0 or 1 do not occur in permutations. When viewed as the set of cycles which are its arguments, the symbol permutation has a normal form constructor. All symbols defined in this CD may appear as the head of an application. For such symbols, we distinguish between functions and constructors. A function is thought of as a mathematical function, which can be evaluated on its arguments, a constructor uses its arguments as fields of a structure. (In principle, the arguments of a constructor should be accessible; we have not introduced separate symbols to enable access because the `destruction' of the mathematical object can take place in phrasebooks.) The constructors in this CD are cycle, permutation, list_perm, and endomap. The operations inverse, left_compose, right_compose are also defined in this CD, although the most general purpose version already occurs in fns1, fns2. The reasons is two-fold: first, strictly speaking, our permutations are not maps, and so these notions havfe to redefined. A more practical reason is that with dynamical loading, it is easier to encode and decode a new symbol in the CD at hand rather than a symbol in a CD that is previously dealt with. Revision 0.1: fix added; error in support example corrected. Revision 0.2: added endomap. Help of Henny Wilbrink.
This symbols is a binary function whose first argument is a permutation (or a endomap) and whose second argument is a point. When applied to permutation or endomap p and point x, it represents the image of the point x under the permutation p.
The permutation (1,5,4)(6,7) sends 1 to 5, so
If are_distinct(a_1,...,a_n) is true then a_1,...,a_n is a valid argument sequence of cycle.
This symbol is an n-ary boolean function. When applied to a_1, ..., a_n, it is true if and only if the arguments are mutually distinct (that is, a_i and a_j are equal only if i=j).
The following expression evaluates to false.
This symbol is an n-ary function, with n at least 1. It marks a relation on the set of its arguments a_1, a_2,...,a_n consisting of the pairs (a_i,a_{i+1}) for i=1,...,n-1 and the pair (a_n,a_1). The arguments a_i should all be distinct. The number n is referred to as the length of the cycle.
The following expression represents the relation on the set {"jan","piet","klaas"} whose members are ("jan","piet"), ("piet","klaas"), and ("klaas","jan").
This symbol is a function with one argument, which is a permutation. When applied to a permutation P, it represents the multiset of lengths of cycles occurring as arguments of P.
The cycle type of the permutation (4,3,2,1)(5,6)("jan","piet") equals {4,2,2}:
This symbol has one argument which should be a endomap p. It returns the list of cycles of p.
The following two objects represent the same list.
This symbol is a function with one argument which is a endomap. When applied to a endomap whose arguments are a_1,...,a_n, it represents the set {1,...,n}.
The following expression represents the set {1,2,3,4,5}.
This symbol is an n-ary constructor. Its arguments should be positive integers. When applied to arguments a_1,...,a_n, the resulting value is the map sending i to a_i for i=1,...,n.
The following expression represents the map on on {1,2,3,4,5} sending 1, 2, and 5 to 2, and 3 and 4 to 1.
The following expression evaluates to true.
This symbol is a binary function. Its arguments should be endomaps with identical domain D. When applied to arguments P1 and P2, the resulting value is the endomap which maps x in D to P1(P2(x)).
This symbol is a binary function. Its arguments should be endomaps with identical domain D. When applied to arguments P1 and P2, the resulting value is the endomap which maps x in D to P2(P1(x)).
This symbol is a function with two arguments. The first argument should be a permutation, the second argument a set. When applied to a permutation g and a set X, it represents the subset A of X all points that do not belong to the support of g.
The following expression represents the set {1,2}.
This symbol is a unary function. Its argument should be a permutation. When applied to argument P, the resulting value is the inverse permutation of P.
The following two expressions represent the same permutation of {1,2,3,4,5}.
This symbol has one argument which should be a endomap p. It returns true if {a_1,...,a_n}={1,...,n} where a_1,...a_n are the arguments of p and false otherwise.
This symbol is an n-ary function. Its arguments should be positive integers. When applied to arguments a_1,...,a_n, the resulting value is true if a_i is at most n for all i, otherwise it is false.
This symbol is an n-ary function. Its arguments should be positive integers. When applied to arguments a_1,...,a_n, the resulting value is true if a_i is at most n for all i and all a_i are distinct, otherwise it is false.
If is_perm(A) is true then permutation(A) is well defined.
This symbol is a boolean function with one argument. If the argument is not a set of cycles of length at least 2, the boolean value is false. Otherwise it is true if and only if the cycles are disjoint (that is, all entries of all cycles in the argument are mutually distinct.
The following value is the boolean false
If is_permutation(A) is true then permutation(A) is well defined.
This symbol is a binary function. Its arguments should be permutations. When applied to arguments P1 and P2, the resulting value is the permutation which maps x in Support(P1) union Support(P2) to P1(P2(x)).
Left and right composition of two permutations may lead to distinct results:
This symbol is a function with one argument, which must be a cycle. When applied to cycle(a_1,a_2,...,a_n), it returns the number n. This number is referred to as the length of the cycle.
The following expression should evaluate to 3.
This symbol is an n-ary constructor. Its arguments should be distinct positive integers in the interval [1,n]. When applied to arguments a_1,...,a_n, the resulting value is the permutation mapping i to a_i for i=1,...,n.
This symbol is a function with one argument which is a permutation whose support consists of positive integers. When applied to such a permutation P, it represents the list of length n whose i-th entry is the image of i under P, where n is the maximum of the support of P.
The following two expressions represent the same list.
This symbol is a function with one argument which is a permutation whose support consists of positive integers. When applied to such a permutation P, it represents the list of length n whose i-th entry is the image of i under P. Here n is at least the maximum of the support of P.
The order of a permutation is the least common multiple of the elements of its cycle type.
This symbol is a function with one argument which should be a permutation. When applied to a permutation P, it represents the least positive integer n for which composition of n copies of P represents the identity (that is, a permutation with empty support). Note: in this definition of the order, it does not matter whether left_compose or right_compose is being used.
The order of the permutation (4,3,2,1)(5,6)("jan","piet") equals 4:
This symbol is an n-ary function. Its arguments should be positive integers. When applied to arguments a_1,...,a_n, the resulting value is the permutation mapping i to a_i.
For a valid argument A the inverse of permutation(A) is a permutation again (that is, evaluates to permutation(C) for suitable argument C).
For valid arguments A and B both left_compose and right compose of permutation(A) and permutation(B) are permutations again (that is, evaluate to permutation(C) and permutation(D), respectively, for suitable C and D).
This symbols is an n-ary function whose arguments are cycles of length at least 2 with the property that all entries of all cycles are mutually distinct. The permutation symbol constructs a bijective map from the set X of entries of the cycles to X. The map is defined as follows: if E occurs as an entry of a cycle, then the permutation maps E to the entry following E in the same cycle if it exists and to the first entry in the same cycle otherwise.
The permutation (1,5,4,2)(6,7) sending 1 to 5, 5 to 4, 4 to 2, 2 to 1, 6 to 7, 7 to 6, is given by
This symbol is a unary function. Its argument should be a positive integer. When applied to argument n, the resulting value is the set of all permutations of the set {1,..., n}.
Both sides of the following equality represent the two permutations on {1,2}.
This symbol is a binary function. Its arguments should be permutations. When applied to arguments P1 and P2, the resulting value is the permutation which maps x in Support(P1) union Support(P2) to P2(P1(x)).
Left and right composition of two permutations may lead to distinct results. Compare the following with the corresponding example in the definition of left_compose.
If the cycle type of a permutation P equals [a_1,...,a_m], then the sign is equal to (-1)^(s-m) where b = a_1+...+a_m.
This symbol is a function with one argument which should be a permutation. When applied to a permutation P, it represents the sign of P, which is equal to -1 if P is an odd permutation and equal to 1 otherwise.
The sign of the permutation (4,3,2,1)(5,6)("jan","piet") equals -1:
This symbol is a function with one argument which is a permutation. When applied to a permutation P whose arguments are the cycles A1,...,An, it represents the set A which is the union of the entries of all Ai for i=1,...,n.
The following expression represents the set {jan,piet,klaas,4,5}.
This CD defines symbols which represent some elementary physical constants.
This symbol represents the number of atoms in 12 grammes of pure carbon(12). It is approximately 6.0221367*10^(23) +/- 3.6*10^(17).
The Boltzmann constant is equal to 1.380658*10^(-23) +/- 1.2*10^(-28) Joules per Kelvin.
A constant which describes the relationship between temperature and kinetic energy for molecules in an ideal gas. It is approximately 1.380658*10^(-23) +/- 1.2*10^(-28) Joules per Kelvin.
Faradays constant is 96485.309 +/- 0.029 Coulombs per mole.
This symbol represents the electric charge carried by one mole of electrons. It is approximately 96485.309 +/- 0.029 Coulombs per mole.
The Loschmidt constant is 2.686763 * 10^(25) +/- 2.3 * 10^(20) per metre cubed.
This symbol represents the number of particles per unit volume of an ideal gas at standard temperature and pressure. It is approximately 2.686763 * 10^(25) +/- 2.3 * 10^(20) per metre cubed.
The Planck constant is 6.6260755*10^(-34) +/- 4.0*10^(-40) Joule seconds this is equivalent to There exists P s.t. 6.626075... -4.0... < P and 6.626075... +4.0... > P and Planck constant = P*Joule*second
This symbol represents the fundamental constant equal to the ratio of the energy of a quantum of energy to its frequency. It is approximately equal to 6.6260755*10^(-34) +/- 4.0*10^(-40) Joule seconds.
This symbol represents the absolute zero of temperature, synonymous with the object of that temperature having zero latent heat.
The gas constant is 8.31451 +/- 7.0*10^(-05) Joules per mole per Kelvin.
This symbol represents the constant which is equal to the ratio of the pressure times the volume and the temperature of an ideal gas. It is approximately 8.31451 +/- 7.0*10^(-05) Joules per mole per Kelvin.
The gravitational constant is approximately 6.672*10^(-11) Newton square metres per kilogramme squared
This symbol represents the constant of proportionality in Newtons law of universal gravitation which states; Two bodies attract each other with equal and opposite forces; the magnitude of this force is proportional to the product of the two masses and is also proportional to the inverse square of the distance between the centers of mass of the two bodies. It is approximately equal to: 6.672*10^(-11) Newton square metres per kilogramme squared.
one light year is approximately 9221136415095314 metres
This symbol represents the distant for which a beam of light would take a year to traverse, in a vacuum.
The magnetic constant is equal to 4 pi x 10^(-7) H/m.
This symbol represents the ratio of the magnetic flux density in a substance to the external field strength for vacuum. It is equal to 4 pi x 10^(-7) H/m.
This symbol represents the number of atoms in one gramme of carbon(12).
The speed of light is approximately 299792458 metres per second
This symbol represents the speed of light in a vacuum. It is approximately 299792458 metres per second.
This symbol represents the zero of the Celsius temperature scale.
This symbol represents the zero of the Fahrenheit temperature scale.
This CD is intended to be compatible with the corresponding elements in Content MathML 2. In this CD we give a set of operators for piece-wise defined expressions.
This symbol introduces the 'default' value of a piecewise construct. If none of the previous piece constructs can provide the value, this will. It has a single child, the value.
This introduces an individual component of a piecewise definition. It has precisely two arguments: the first is the value, and the second is a Boolean (meant to be a predicate) which is true if and only if this piece is to provide the value of the piecewise construct.
This operator heads an expression that is being defined piecewise. Its arguments are n objects built with the piece constructor, optionally followed by one built with otherwise constructor.
This CD defines symbols for planar Euclidean geometry.
The statement that a set of points is collinear.
This example states that A, B, C, and D are collinear.
The symbol is a constructor with two arguments. Its first argument should be a configuration, its second argument a statement about the configuration, called thesis. When applied to a configuration C and a thesis T, the OpenMath object assertion(C,T) expresses the assertion that T holds in C.
The assertion that two distinct lines meet in only one point can be expressed as follows using the assertion symbol.
The symbol represents a configuration in Euclidean planar geometry consisting of a sequence of geometric objects like points, lines, etc, but also of other configurations.
The configuration of a point A and a line l incident to A is defined by:
The prevous configuration of a point A and a line l incident with A can be extended by adding a second point B incident with l:
We describe a triangle on the distinct points A, B, C and lines a, b, c:
The symbol is used to indicate a line of planar Euclidean geometry by a variable. The line may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
Given points A and B, a line l through A and B is defined by:
The symbol is used to indicate a point of planar Euclidean geometry by a variable. The point may (but need not) be subject to constraints. The symbol takes the variable as the first argument and the constraints as further arguments.
If A and B are objects of the same type, then they are not incident.
The symbol represents the type of the basic geometric objects: points, lines, configuration.
The corner between two halflines L and M, both starting at the same point. Given three points A, B and C, the corner A, B, C is the corner of the two halflines BA and BC. Corresponding to the two cases, the symbol can have as arguments two halflines or three points.
The endpoint of a halfline H is given by
The set of the two endpoints of a segment S is given by
The halfline starting at A and going through B. The symbol takes as arguments the points A and B.
The segment of a line between two points of the line. The segment is contained in the affine part of the line. The symbol takes as arguments the two points.
This CD defines symbols for planar Euclidean geometry related to distance.
Given a point p and a line L, this defines the segment starting at p and ending in the unique point of L closest to p.
Angle of a corner, always measured in positive (anti-clockwise) direction.
an arc of a circle M from A to B is the set of points of M that are encountered when traversing the circle clockwise from A to B.
The statement that a set of points is on one circle.
This example states that A, B, C, and D lie on one circle.
The circle C with center A and radius 1 is given by
If C is the circle of the previous example then the following gives A.
Center of gravity of a number of points.
The center of gravity G of three points A, B and C is defined as follows.
The symbol represents a circle. The circle may be subject to constraints.
The distance between two affine points is the Euclidean distance. The distance between two geometric objects O and O' is the infimum of the distances between two affine points, one on O and one on O'.
The distance between two points A and B.
The midpoint between two points or two endpoints of a segment.
The midpoint of two points A and B is the same as the midpoint of the segment S on A and B.
parallel is a binary boolean function with input two lines, halflines or segments. Its value is true whenever the two inputs are parallel.
Testing parallelism of two lines L and M.
Given two distinct points A and B, this is the line of all points at equal distance to both A and B.
perpendicular is a binary boolean function with input two lines, halflines or segments. Its value is true whenever the two inputs are perpendicular to each other.
Testing perpendicularity of two lines L and M.
Given a point p and a line L, this defines the line through p perpendicular to L.
If p is incident with the circle C, the polar line of p with respect to C is the tangent line at p with respect to C.
Given a point p and a circle C this defines the polar line of p with respect to C.
The assertion that the radius of the circle C is 1:
Given a line L and a circle C this boolean checks whether L is a tangent line to C.
This CD defines symbols for planar Euclidean geometry. In particular, it is concerned with projective and affine coordinates of points and lines.
This function yields the affine coordinates vector if applied to a point or line with coordinates in the affine plane.
The affine coordinates (1/3,2/3) are expressed as follows for the point A with projective coordinates (1,2,3).
This function yields the coordinates vector if applied to a point or line with coordinates.
To extract the coordinates of a point A with coordinates (1,2,3):
Boolean function testing whether a point or line is affine.
Defines the affine coordinates of an affine point or line.
Assign the affine coordinates (1/3,2/3) to A.
This symbol defines the coordinates of a point or a line. The coordinates are the projective coordinates and consist of a vector of length 3. Points whose third coordinates are zero are the points at infinity. The line whose first two coordinates are zero is the line at infinity.
This CD contains symbols for generating polynomial systems from affine planar geometry configurations.
This symbol is a function of one argument which must be a configuration or an assertion (as defined in plangeo1). When applied to a configuration C, it stands for the same configuration but now with coordinates attached to each object of C. The new variables are bound within an OMBIND element with head element the lambda symbol. The bound variables (placed within an OMBVAR element) are the new variables, and the last argument of OMBIND is the expression C in which each object is coordinatized. If an object already has coordinates, these are left as they are. If not, then new variables are introduced to coordinatize the object. When applied to an assertion of the form assertion(C,S), it leads to the same result except that the last argument of OMBIND is the assertion whose configuration argument is the expression C in which each object is coordinatized, and whose thesis argument is S.
The coordinatized version of the affine triangle with points A,B,C and lines a, b, c (through B and C, A and C, and A and B respectively) described in two ways:
The coordinatization of the assertion that two distinct lines meet in only one point is expressed as follows.
It is equivalent to following expression.
This symbol is a function in one argument, which should be a coordinatized configuration (that is, each geometric object involved has coordinates). When evaluated at a configuration C it represents a function (given by a lambda binder) mapping the new parameters (arising when the inequality properties in the configuration are being translated into polynomials) to a list of polynomials in the coordinates that are variables which, when equated to zero, represent conditions equivalent to those describing the configuration C. When evaluated at an assertion assertion(C,S) it represents a function (given by a lambda binder) mapping the new parameters (arising when the inequality properties in the configuration are being translated into polynomials) to a list of polynomials in the coordinates that are variables which, when equated to zero, represent conditions equivalent to those describing the configuration C.
The following expression is an ideal of a coordinatized triangle.
This symbol is a boolean valued function of one argument which must be a configuration. When applied to an argument C, it represent the value true if C is a configuration such that each object occurring in C (as well as in its subconfigurations) has coordinates (that is, the set_affine_coordinates field is present as an argument to the object), and value false otherwise. If an object already has coordinates, these are left as they are. If not, then new variables are introduced to coordinatize the object.
This symbol is a function in one argument, which should be an assertion whose configuration is coordinatized (that is, each geometric object involved has coordinates). When evaluated at an assertion assertion(C,T) it represents the assertion that the constant polynomial 1 belongs to the ideal of the polynomial ring over a coefficient ring R containing the rationals and all global (unbound) coordinates of C, in the bound variables of ideal(C) and an external variable t, generated by ideal(C)[bound variables] and 1-f_T t. Here f_T is a polynomial such that f_T=0 is equivalent to the thesis T being true. This means f_T is in the radical ideal of ideal(C)[bound variables]. The interpretation is as follows: There are no parameter choices for the bound variables such that f_T is nonzero. In other words, for all parameter choices of a coordinatization of C, we must have f_T=0. So the truth of the assertion that thesis T holds in configuration C is reflected by the truth of polynomial_assertion(C,T).
This CD defines symbols for planar Euclidean geometry related to conics. amc: 18 March 2004 added are_on_conic
If G is the conic determined by A,B,C,D, and E, whereas F is a point incident with G, then A,B,C,D, E, and F are on a conic.
The symbol is a boolean n-ary function. Its arguments should be points. When applied to a sequence of points, its evaluated to true if and only if there is a conic on which all arguments lie.
The symbol represents a conic. The conic may be subject to constraints.
The conic G, incident to A,B,C,D and E is given by
This CD contains generic operators to deal with various forms of polynomials. The arithmetic operators from arith1 etc. are valid on these polynomials: there is also the operator "power" from this CD, which creates formal powers. More specific operations for Distributed Multivariate Polynomials can be found in polyd.ocd, and for Recursive polynomials in polyr.ocd.
Original OpenMath v1.1 Poly 1997 Update to Current Format 1999-07-07 DPC Move the names of rings to setname.ocd 1999-11-09 JHD Split into poly{,d,r} 1999-11-14 JHD Updated following Abbott/Strotmann/Davenport at Dagstuhl October 2001 JHD
The coefficient with respect to a list of variables (the second argument) raised to a list of powers (the third argument). Zero if no such term is present. Not all variables need be specified.
Conversion between polynomial rings. The first argument is a polynomial and the second is a polynomial ring. This represents the conversion of the given polynomial as an element of the given ring. A program that can compute the conversion is required to return a polynomial in the given ring.
The total degree of its argument. The value returned is a non-negative integer. We note that the degree of 0 is undefined. Note that this operation takes no account of any weights that have been defined: see weighted_degree in polyd.
The degree with respect to a variable (the second argument). We note that the degree of 0 is undefined.
Function taking two arguments, it represents the discriminant of a polynomial, which is the first argument, with respect to the given variable which is the second argument.
Evaluation of a polynomial at a value or vector of values.
Converts a factored or squarefreed form into the expanded polynomial over the same ring, so that factored(recursive) -> recursive, etc.
The decomposition of its argument into irreducible factors. A program that can compute the factorization is required to return a "factored" object - see above. It is currently an open question whether powers of 1 can be omitted.
The constructor for a factorization. Its arguments are formal powers (see previous operator), where the polynomials are supposed to be irreducible (except possibly for a content from the ground ring). Note that "factored" is not a call to factorise something, rather a statement that we know a factorisation.
The n-ary greatest common divisor of its polynomial arguments. This is unique up to units.
The least common multiple of its polynomial arguments. This is unique up to units, but the choice must be compatible with that made for gcd: see the CMP/FMP.
The leading coefficient with respect to a variable (the second argument). We note that the leading coefficient of 0 is undefined.
The constructor for a factorization. Its arguments are formal powers (see operator above), where nothing in particular is assumed about the polynomials (they may or may not be irreducible, or relatively prime).
Takes a polynomial and a (non-negative) integer and produces a formal power. Although OpenMath does not specify operational semantics, the idea here is that these powers are not evaluated. We note that the power from arith1 would suggest the expanded form.
if for all f,g in R[x] | if there exists an a in R s.t. f(a) = g(a) = 0 then resultant(f,g,x) = 0
Function taking three arguments, it represents the resultant of two polynomials, which are the first two arguments, with respect to the given variable which is the third argument.
We note that the polynomials utilised in the following FMP are recursive in nature, however the resultant symbol may be used also on dense polynomials.
The square-free decomposition of its argument. A program that can compute the factorization is required to return a "squarefreed" object.
The constructor for a square-free factorization. Its arguments should have the structure of the above "factored", where the polynomials should be square-free. Note that this is not necessarily a minimal square-free decomposition: some exponents can occur more than once. Again, this is a statement that we have a square-free factorisation, rather than a request to compute one.
This CD contains operators to deal with polynomials and more precisely Distributed Multivariate Polynomials.
Definition of data-structure constructors
Original OpenMath v1.1 Poly 1997 Update to Current Format 1999-07-07 DPC Move the names of rings to setname.ocd 1999-11-09 JHD Delete those items moved to the new poly.ocd 1999-11-14 JHD Update following Abbott/Davenport/Strotmann at Dagstuhl 2001-10-12 JHD Added example to weighted_degree 2002-09-17 JHD
The following orders on terms have their standards definitions, see, for example, "Ideals, Varieties and Algorithms", D. Cox, J.B. Little and D. O'Shea, Springer Verlag.
The polynomial x^2*y^6 + 3*y^5 can be encoded as DMP(poly_ring_d(Z, 2), SDMP(term(1, 2, 6), term(3, 0, 5))) if the variables are anonymous, or if they are named, as DMP(poly_ring_d_named(Z, x,y), SDMP(term(1, 2, 6), term(3, 0, 5))) The polynomial 2*y^3*z^5 + x + 1 can be DMP(poly_ring_d(Q, 3), SDMP(term(2, 0, 3, 5), term(1, 1, 0, 0), term(1, 0, 0, 0))) Note that these are not real encodings but a "term-like" encoding (whose understanding should be trivial) meant for the human readers of this dictionary. Of course, actual encodings can be more compact...
This is our attempt at defining a first Content Dictionary to deal with polynomials. There are many possible choices for a polynomial CD, and several questions to answer. The reader may feel that this content dictionary is quite different in spirit from the "Basic" one. Although it basically defines a set of concepts related to polynomials (such as degree, factorization, resultant...), there are two new points here: - a certain emphasis on representation issues (including structural constraints on some OM objects), - an attempt to specify some "computational behaviour" of an OM application that handles (part of) this CD. As some people may disagree with some of our choices, we will try to justify them in this rather long foreword. 1. Representation issues One of the interest of OM is certainly to enable the use of specialized servers. It is important to promote the writing of OM-compliant servers by placing as few constraints as possible on the programmers of these packages. This CD has been designed with the idea that it could be simple to use for a server dealing only with polynomial computations. Hence we have used a particular representation for polynomials (distributed with dense monomials). This representation is rather abstract in the sense that it does not introduce names for variables. It explicitly contains the polynomial ring a polynomial belongs to as the set of the coefficients and the number of variables. It seems (from our experience) that this information is necessary for most specialized servers. Expressing constraints on the structure of OM objects made from the symbols in this CD is not always easy. One of the main reason is that a symbol such as "gcd" is meant to denote the GCD of a set of polynomials, no matter how the polynomials are represented. Such a function should thus accept both "symbolic" arguments (a list of symbolic object meant to be polynomials) and the polynomials in the specific representation defined in this CD. Of course, another solution will be to have one "gcd" for one (or several) particular representation and another "gcd" to express the general notion of polynomial "gcd". We though that the solution we chose was more in the spirit of "Basic" and the discussions of the last OpenMath meeting. A question which is not entirely answered is whether or not it is interesting to have "symbolic" objects inside some constructors (such as a power which is not an OM integer in "Monom" or a symbolic "PolyRingD" (a variable) as an argument of "DMP"). We explicitly forbid that in the first version of this CD. Note that we did not try to express the constraints with signatures in this version because we did not find a really satisfactory solution. 2. Specifying some "computational behaviour" Of course it would be of no use to exactly specify the behaviour of any OM application that receives an OM object. There are (at least) two reasons for that: - an OM object is intended to represent a mathematical object and thus the same OM object could be sent to a typesetter as well as to a symbolic computation system, - even when dealing with programs that compute, exact specifications could be impossible or too much constraining for a given system. On the other hand, we believe that one of the goal of OM is certainly that a program needing to factorize an integer could transparently use Maple, Axiom or Pari to do the job. This is of course possible only if all severs that "implement" (in the sense of really performing) the mathematical notion of integer factorization answer in a similar way. In other words, we should not hesitate to specify what a particulary useful class of OM applications (the "computing" ones) should return (the form of the result) everytime compliance to this specification is simple enough because it is obviously very useful. We have tried to express this idea in this CD through some comments and the use of symbols such as "factored" or "groebnered" that describe the required results of some functions. The general "compliance" rule can be stated as: an OM application that understands this CD and implements some of the polynomials operation described is required to implement them using the constructors defined in this CD, as indicated in the comments associated with the operations. This means that if the OM version of a computer algebra system claims to implement polynomial factorization, another application can send him an OM object as described in the "factor" comment (the symbol "factor" applied to one argument, a DMP) and the result will be return as defined : a "factored" symbol whose arguments are described in the corresponding entry of the poly CD.
The constructor of DMPs. The first argument is the polynomial ring containing the polynomial and the second is a "SDMP". Should be of the form DMP(PolyRingD(...), SDMP(...))
The constructor for lists of multivariate polynomial members of the same polynomial ring. The first argument is a polynomial ring and the rest are "SDMP"s. DMPL can be attributed with the "ordering" symbol to indicate a particular ordering for monomials of all its polynomials. Should be of the form DMPL(PolyRingD(...), SDMP(...)+)
The constructor for multivariate polynomials without any indication of variables or domain for the coefficients. Its arguments are just "term"s. No terms should differ only by the coefficient (i.e it is not permitted to have both "2*x*y" and "x*y" as terms in a SDMP). SDMP can be attributed with the "ordering" symbol to indicate a particular ordering of its terms. This attribute shall not be set if the SDMP is part of DMPL that has this attribute set. If the SDMP is ordered, explicitly or implicitly via an outer ordering, the terms must be in decreasing order with respect to this order. The zero polynomial is represented by an SDMP with no terms.
Indicates a variable that we do not want to name
This attribute, attached to a groebnered object, says 'true' if the base is fully reduced, i.e. no monomial is divisible by the leading monomial of any other polynomial.
This is an ordering, which is partially in terms of one ordering, and partially in terms of another. First argument is a number of variables. Second is ordering to apply on the first so many variables. Third is an ordering on the rest, to be used to break ties.
Total degree order, graded with the lexicographic ordering. Note that, if a poly_ring_d_named is used, lexigographic refers to the order of the variables in the poly_ring_d_named, not to their order as strings.
Total degree order, graded with the reverse lexicographic ordering. Note that, if a poly_ring_d_named is used, lexigographic refers to the order of the variables in the poly_ring_d_named, not to their order as strings.
The groebner basis (lt-reduced, minimal) of a set of polynomials, with respect to a given ordering. First argument is an ordering, the second is a list of polynomials. A program that can compute the basis is required to return a "groebnered" object.
The constructor for a Groebner basis (reduced, minimal). The first argument is an ordering, the second is the Groebner Basis itself (with respect to the ordering) that should be represented as a DMPL.
The lexicographic ordering of terms. Note that, if a poly_ring_d_named is used, lexigographic refers to the order of the variables in the poly_ring_d_named, not to their order as strings.
The argument is a matrix with as many columns as indeterminates (= rank). Each row in turm is multiplied by the column vector of exponents to produce a weighting for comparison purposes.
Used as an attribute to indicate an ordering of the terms in a polynomial or list of polynomials. The value of this attribute should be one of the constructors specifying ordering.
The sum. The argument is a DMPL. The sum lies within the same "PolyRingD" i.e. a program implementing this operation should return a DMP with the same "poly_ring_d" (or "poly_ring_d_named").
The constructor of polynomial ring. The first argument is a ring (the ring of the coefficients), the second is the number of variables as an integer.
The constructor of polynomial ring. The first argument is a ring (the ring of the coefficients), the remaining arguments are the names of the variables. The first variable given is the most important from the point of view of lexicographic ordering, then the second, and so on.
The power. First argument is a DMP, second argument is the integer power. The power lies within the same "PolyRingD" i.e. a program implementing this operation should return a DMP with the same "poly_ring_d" (or "poly_ring_d_named").
The reduction of a polynomial with respect to a Groebner basis. First argument is a DMP, the second argument is a "groebnered" object. i.e. a program implementing this operation should return a DMP which represents the polynomial reduced with respect to the Groebner basis.
The reverse lexicographic ordering of terms. Note that, if a poly_ring_d_named is used, lexigographic refers to the order of the variables in the poly_ring_d_named, not to their order as strings.
The constructor of terms. Valid applications are of the form Term(coeff, exp1, exp2, ... expn) which represents the term coeff * var1^exp1*...varn^expn where n is the number of variables, expi are non-negative integers. coeff should be non-zero.
The product. The argument is a DMPL. The product lies within the same "PolyRingD" i.e. a program implementing this operation should return a DMP with the same "poly_ring_d" (or "poly_ring_d_named").
The first argument is a list of integers to act as variable weights, and the second is an ordering. The result is an ordering.
The total degree of its argument, taking into account any weights declared. The value returned is an integer: non-negative if the weights are. We note that the degree of 0 is undefined.
Original OpenMath v1.1 Poly 1997 Update to Current Format 1999-07-07 DPC Move the names of rings to setname.ocd 1999-11-09 JHD Delete those items moved to the new poly.ocd 1999-11-14 JHD Move items pertaining to orderings to polyd2 and those involving Groebner bases to polygb1 and polygb2. 2004-07-07 AMC Comments also edited by AMC
The polynomial x^2*y^6 + 3*y^5 can be encoded as DMP(poly_ring_d(Z, 2), SDMP(term(1, 2, 6), term(3, 0, 5))) The polynomial 2*y^3*z^5 + x + 1 can be DMP(poly_ring_d(Q, 3), SDMP(term(2, 0, 3, 5), term(1, 1, 0, 0), term(1, 0, 0, 0))) Note that these are not real encodings but a "term-like" encoding (whose understanding should be trivial) meant for the human readers of this dictionary. Of course, actual encodings can be more compact...
This is our attempt at defining a first Content Dictionary to deal with polynomials. There are many possible choices for a polynomial CD, and several questions to answer. 1. Representation issues One of the interests of OM is certainly to enable the use of specialized servers. It is important to promote the writing of OM-compliant servers by placing as few constraints as possible on the programmers of these packages. This CD has been designed with the idea that it could be simple to use for a server dealing only with polynomial computations. Hence we have used a particular representation for polynomials (distributed with dense monomials). This representation is rather abstract in the sense that it does not introduce names for variables. It explicitly contains the polynomial ring a polynomial belongs to as the set of the coefficients and the number of variables. It seems (from our experience) that this information is necessary for most specialized servers. Expressing constraints on the structure of OM objects made from the symbols in this CD is not always easy. One of the main reason is that a symbol such as "gcd" is meant to denote the GCD of a set of polynomials, no matter how the polynomials are represented. Such a function should thus accept both "symbolic" arguments (a list of symbolic object meant to be polynomials) and the polynomials in the specific representation defined in this CD. Of course, another solution will be to have one "gcd" for one (or several) particular representation and another "gcd" to express the general notion of polynomial "gcd". A question which is not entirely answered is whether or not it is interesting to have "symbolic" objects inside some constructors (such as a power which is not an OM integer in "Monom" or a symbolic "poly_ring_d" (a variable) as an argument of "DMP"). We explicitly forbid that in the first version of this CD. 2. Specifying some "computational behaviour" Of course it would be of no use to exactly specify the behaviour of any OM application that receives an OM object. There are (at least) two reasons for that: - an OM object is intended to represent a mathematical object and thus the same OM object could be sent to a typesetter as well as to a symbolic computation system, - even when dealing with programs that compute, exact specifications could be impossible or too much constraining for a given system. On the other hand, we believe that one of the goals of OM is certainly that a program needing to factorize an integer could transparently use Maple, Axiom or Pari to do the job. This is of course possible only if all severs that "implement" (in the sense of really performing) the mathematical notion of integer factorization answer in a similar way. In other words, we should not hesitate to specify what a particulary useful class of OM applications (the "computing" ones) should return (the form of the result) everytime compliance to this specification is simple enough because it is obviously very useful. We have tried to express this idea in the polydx CDs through some comments and the use of symbols such as "factored" or "groebner_basis" that describe the required results of some functions. The general "compliance" rule can be stated as: an OM application that understands this CD and implements some of the polynomials operation described is required to implement them using the constructors defined in this CD, as indicated in the comments associated with the operations. This means that if the OM version of a computer algebra system claims to implement polynomial factorization, another application can send him an OM object as described in the "factor" comment (the symbol "factor" applied to one argument, a DMP) and the result will be return as defined: a "factored" symbol whose arguments are described in the corresponding entry of the poly CD.
The constructor of DMPs. The first argument is the polynomial ring containing the polynomial and the second is a "SDMP". Should be of the form DMP(poly_ring_d(...), SDMP(...))
The constructor for lists of multivariate polynomial members of the same polynomial ring. The first argument is a polynomial ring and the rest are "SDMP"s. DMPL can be attributed with the "ordering" symbol to indicate a particular ordering for monomials of all its polynomials. Should be of the form DMPL(poly_ring_d(...), SDMP(...)+)
The constructor for multivariate polynomials without any indication of variables or domain for the coefficients. Its arguments are just "monomial"s. No monomials should differ only by the coefficient (i.e it is not permitted to have both "2*x*y" and "x*y" as monomials in a SDMP). SDMP can be attributed with the "ordering" symbol to indicate a particular ordering of its monomials. This attribute shall not be set if the SDMP is part of DMPL that has this attribute set.
This is a unary function, whose argument should be a DMP f. When applied to f, it represents the first argument of f, that is, ring of the form poly_ring_d(...) used to define f.
The sum. The argument is a DMPL. The sum lies within the same "poly_ring_d", i.e., a program implementing this operation should return a DMP with the same "poly_ring_d".
The ring of polynomials over the rationals in two variables.
By Use of the expression symbol from the CD ring1, an arithmetic expression can be interpreted as a member of poly_ring_d_named. For instance,
The power. First argument is a DMP, second argument is the integer power. The power lies within the same "poly_ring_d", i.e., a program implementing this operation should return a DMP with the same "poly_ring_d".
This is a unary function, whose argument can be a DMP, a poly_ring_d, or a poly_ring_d_named. When applied to its argument, it represents the number of variables of the polynomial ring involved.
The constructor of monomials. Valid applications are of the form Term(coeff, exp1, exp2, ... expn) which represents the monomial coeff * var1^exp1*...varn^expn where n is the number of variables, expi are non-negative integers.
The product. The argument is a DMPL. The product lies within the same "poly_ring_d", i.e., a program implementing this operation should return a DMP with the same "poly_ring_d".
This is a unary function, whose argument is a poly_ring_d_named. When applied to its argument, it represents the list of variables of the polynomial ring.
This CD defines symbols for ordering of monomial for Distributed Multivariate Polynomials, which were defined in polyd1.
Original OpenMath v1.1 Poly 1997 Update to Current Format 1999-07-07 DPC Move the names of rings to setname.ocd 1999-11-09 JHD Delete those items moved to the new poly.ocd 1999-11-14 JHD Delete those items pertaining to Groebner bases 2004-07-07 AMC These are of use for canonical ways of writing polynomials and for Groebner bases
The following orders on monomials have their standards definitions, see, for example, "Ideals, Varieties and Algorithms", D. Cox, J.B. Little and D. O'Shea, Springer Verlag.
Total degree order, graded with the lexicographic ordering.
Total degree order, graded with the reverse lexicographic ordering.
The lexicographic ordering of monomials.
Used as an attribute to indicate an ordering of the monomials in a polynomial or list of polynomials. The value of this attribute should be one of the constructors specifying ordering.
The reverse lexicographic ordering of monomials
This CD contains conversions between different data structures for polynomials.
This a binary function. Its first argument should be a DMP f, its second argument a list of positive integers L. When applied to f and L, it represents the DMP with coefficients from the poly_ring_d whose variables only have indices i for i not occurring in the list L, and whose monomials are built up from the variables indexed by the entries of L.
This symbol is a function with two arguments. The first argument is a ring R and the second argument is a list L. The entries of L are elements of R or can be cast canconically onto elements of R. When applied to R and L, the symbol denotes the distributed (univariate) polynomial over R with terms (L[i-1],i) for i running over the indices of L (i=1, ..., length(L)).
The polynomial X^2+4X+7 with integers coefficients can be represented, without recourse to X, by
Thus, the above expression is semantically equivalent to
This symbol is a unary function. Its argument is a DMP with named variables. When applied to R, the symbol denotes the arithmetic expression that is the sum of the terms.
The polynomial X^2+4X+7 with integers coefficients has poly_d_named form
This symbol is a binary function. The first argument is a DMP and the second argument is a list of objects, typically variables or arithmetic expressions, at least as many as there are variables in the ring to which the DMP belongs. When applied to R and L, the symbol denotes the arithmetic expression that is the sum of the terms with the i-th variable of the ring of the DMP being substituted by the i-th expression or variable of the list L.
The polynomial X^2+4X+7 with integer coefficients has poly_d form
This expression is very close to a substitute, or an application of the DMP, as viewed as a function, to as many arguments as there are variables.
This CD contains operators for Groebner basis computations with polynomial expressions. It is derived from surgery of polyd.
The groebner basis (reduced, minimal) of a set of polynomials, with respect to a given ordering. First argument is a list of variables, the second is an ordering, the third is a list of polynomials. A program that can compute the basis is required to return a "groebner_basis" object.
The constructor for a Groebner basis (reduced, minimal). The first is a list of variables, the second argument is an ordering, the third is the Groebner Basis itself (with respect to the ordering) that should be represented as a polynomial expression.
The reduction of a polynomial with respect to a list P of polynomials. First argument is a polynomial expression p, the second argument is the list P of polynomials, the third argument is a list of variables, the fourth argument is a monomial reduction ordering. A program implementing this operation should return a polynomial which represents a polynomial reduced from p with respect to P. This means that p is expressible as the sum of the returned polynomial and a linear combination of the polynomials from P with coefficients being polynomials in the variables given in the third argument, and that no monomial of the returned polynomial is divisible by the leading monomial of an element from P.
This CD contains operators for Groebner basis computations with polynomial expressions. It adds features to polygb1 like testing membership of an ideal, and of the radical ideal of an ideal, and providing insight as to how to change the ideal minimally so as to let this happen. Suggestion: polygb3 is to contain a trace of the GB computation. polygb4 is to contain S poly
This symbol is a function of at least 3 arguments. The first argument is a list of variables. The second and third argument are lists of polynomials in the variables from the first argument, C and T respectively. When applied to its arguments, it represents the boolean value of the assertion that all elements t in T can be written as t = f_1*c_1 + ... + f_n*c_n (c_i in C). If the optional 4th argument is 1, those f_i are returned.
This symbol is a function of at least 4 arguments. The first argument is a polynomial p, the second is a list of variables, the third is an ordering the fourth is a list of polynomials B, and, optionally, the fifth is a polynomial_ring. When applied to its arguments, it represents the boolean value of the assertion that p belongs to the ideal generated by B.
This symbol is a function of at least 4 arguments. The first argument should be a polynomial p, the second is a list of variables, the third is an ordering the fourth is a list of polynomials B, and optionally: the fifth is a polynomial_ring. When applied to its arguments, it represents the boolean value of the assertion that p belongs to the radical ideal generated by B.
This symbol is a function with 3 arguments. First argument is a list of variables, the second is an ordering, the third is a list B of polynomials. [Optionally, the fourth is a polynomial ring.] When applied to its arguments, it represents the polynomial in the Groebner basis of B with respect to the ordering with the least leading monomial.
The following evaluates to the polynomial 1-2y^3+y^6 (up to a scalar multiple)
This CD holds a collection of basic constructs for univariate polynomials over rings. The data structures for polynomials can be arithmetic expressions, for instance using the ring1.expression symbol, or DMP as in the CD polyd1.
This symbol is a binary function whose first argument should be a polynomial f and whose second argument should be a non-negative integer n. It represents the coefficient of the i-th power of the variable in the polynomial f.
The coefficient of the first power of X in the polynomial (X+1)^2 in (Z/7Z)[X] is equal to 2.
This symbol is a unary function whose argument should be a polynomial. It represents the coefficient ring of the polynomial.
The coefficient ring is often explicitly given as part of the polynomial:
This symbol represents a unary function, whose argument should be univariate polynomial. When applied to a polynomial, it represents its degree, that is the highest power of the variable occurring in a term of the polynomial. If the polynomial has no terms, it is the zero polynomial, in which case the value represented is -1.
The following expression is equivalent to the arithmetic expression X^2+2X+1 in (Z/7Z)[X].
This symbol represents a unary function, whose argument should be univariate polynomial. When applied to a polynomial, it represents the coefficient of the monomial of highest degree. If the polynomial is zero, the value represented is zero.
The leading term of a nonzero polynomial is the product of the leading monomial and the leading coefficient of the polynomial.
This symbol represents a unary function, whose argument should be a nonzero univariate polynomial. When applied to such a polynomial, it represents the highest power of the variable occurring in the polynomial.
This symbol represents a unary function, whose argument should be univariate polynomial. When applied to a polynomial, it represents its leading term, that is the term that is the product of the highest power of the variable and its coefficient. If the polynomial is zero, the value represented is zero.
This CD holds a collection of basic modular arithmetic for univariate polynomials over rings. The data structures for polynomials can be arithmetic expressions, for instance using the ring1.expression symbol, or DMP as in the CD polyd1.
This symbol represents a bivariate function, whose arguments should be polynomials. If a, m are polynomials in a polynomial ring R[X], then class(a,m) denotes the residue class a mod m in the quotient ring R[X]/ (mR[X]).
The polynomial a divides the polynomial b with the same coefficient ring as a if and only there is a polynomial q over this coefficient ring such that a * q = b.
This symbol represents a bivariate Boolean function, whose arguments should be polynomials in the same polynomial ring. When applied to a and b, it denotes the property that a divides b.
This symbol represents a Boolean valued trivariate function, whose arguments should be polynomials. When applied to polynomials a, b, m, it denotes the Boolean evalue of the assertion that a and b are equal modulo m.
modulo_relation(m)(a,b) is equivalent to eqmod(a,b,m).
This symbol represents a univariate function, whose argument should be a polynomial. When applied to a polynomial m, it denotes the equivalence relation of being equal modulo m.
This symbol represents a Boolean valued trivariate function, whose arguments should be polynomials. When applied to polynomials a, b, m, it denotes the Boolean evalue of the assertion that a and b are not equal modulo m.
This CD holds a collection of basic modular arithmetic for polynomials over fields. The data structures for polynomials can be arithmetic expressions, for instance using the ring1.expression symbol, or DMP as in the CD polyd1.
This symbol is a unary function, whose argument should be a polynomial f. When applied to f, it represents a complete list of irreducible factors of f.
The following expression represents the list [X+1,X+1] of rational polynomials.
The n-ary greatest common divisor for univariate polynomials over fields.
For all a,b with a,b univariate polynomials over a field F we have a = b * quotient(a,b) + remainder(a,b) and degree(remainder(a,b)) is less than degree(b).
This symbol represents the binary division operator on univariate polynomials over fields. That is, for univariate polynomials a and b, quotient(a,b) denotes the polynomial q such that a=b*q+r, with degree(r) less than degree(b).
The symbol represents a binary function, whose arguments should be univariate polynomials in the same polynomial ring whose coefficient ring is a field. When applied to a and b, it represents the polynomial remainder after division of a by b.
For univariate polynomials a and b, remainder(a,b) denotes r such that a=b*q+r, with degree(r) less than degree(b). See remainder for a formal statement of this property.
Expands a polynomial. Acts as expand(expresion).
The action of factoring a polynomial into irreducible factors (I know this is field dependent but lets keep it simple by now).
The action of returning a list composed of the irreducible factors of a polynomial. (I know this is field dependent but lets keep it simple by now).
The n-ary greatest common divisor for univariate polynomials.
This CD contains operators to deal with polynomials and more precisely Recursive Polynomials. Note that polynomials are regarded as univariates in their most significant variable (as defined by the order in PolynomialRingR: the first variable to appear is the most significant), with monomials in decreasing order of exponent, and coefficients being polynomials in the rest of the variables. This means that polynomials have a unique representation, except for the fact that yz \in Z[x,y,z] could also be represented as x^0yz. This latter is discouraged, but currently not expressly forbidden.
Original OpenMath v1.1 Poly 1997 Update to Current Format 1999-07-07 DPC Move the names of rings to setname1.ocd 1999-11-09 JHD Delete those items moved to the new poly.ocd 1999-11-14 JHD Convert to recursive polynomials 1999-11-20 JHD
The polynomial x^2*y^6 + 3*y^5 can be conceptually encoded as poly_r_rep(x, term(2,poly_r_rep(y, term(6,1))), term(0,poly_r_rep(y, term(5,3)))) It lies in polynomial_ring_r(Z,x,y) (and other rings, of course) The polynomial 2*y^3*z^5 + x + 1 can be conceptually encoded as poly_r_rep(x, term(1,1), term(0,poly_r_rep(y, term(3,poly_r_rep(z, term(5,2))), term(0,1))))
A constructor for the representation of polynomials. The first argument is the polynomial variable, the rest are monomials (in decreasing order of exponent).
The polynomial x^2*y^6 + 3*x^0*y^5 = x^2*y^6 + 3*y^5 may be encoded as:
The constructor of Recursive Polynomials. The first argument is the polynomial ring containing the polynomial and the second is a "poly_r_rep".
The polynomial x^2*y^6 + 3*x^0*y^5 = x^2*y^6 + 3*y^5 in the polynomial ring with the integers as the coefficient ring and variables x,y in that order may be encoded as:
The constructor of a recursive polynomial ring. The first argument is a ring (the ring of the coefficients), the rest are the variables (in order).
A constructor for monomials, that is products of powers and elements of the base ring. First argument is from N (the exponent of the variable implied by an outer poly_r_rep) second argument is a coefficient (from the ground field, or a polynomial in lesser variables).
This CD contains operators to deal with polynomials and more precisely polynomials held in Straight Line Program representation.
Definition of some functions which are specific to slps
Definition of some functions which are very useful for slps
This constructor takes one argument, which is a value from the coefficient ring. It is intended to represent a constant node.
A unary function taking an slp as argument and returning the greatest depth of any leaf node, that is the length of the longest contiguous path to any leaf node.
This constructor takes one argument, which is a variable. The return value is intended to represent an input node.
Takes as argument a node of an slp. Returns the value of the left hand pointer of the node.
A unary function taking an slp as argument and returning the length of this slp.
This is a Monte-Carlo equality test, it takes three arguments, the first two are slps representing polynomials, the third argument is the maximum probability of incorrectness that is required of the equality test. (Monte-Carlo equality tests are very important for slps as they offer the only tractable method of solving the equality problem in many cases)
Takes an slp as the first argument, the second argument is the position of the required node. Returns the node of the slp at this position.
This constructor takes three arguments. The first argument is a symbol from opnode, meant to specify whether the node is a plus, minus times or divide node, the second and third arguments are integers, which are the numbers of the lines which are the arguments of the operation
The constructor of the polynomial ring. The first argument is a ring, (the ring of the coefficients), the rest are the variables, in any order.
An example to represent a polynomial ring over the integers, with the two variables x,y. viz. Z[x,y]
The constructor of Polynomials built with Straight Line Program representation. The first argument is the polynomial ring containing the polynomial built with poly_ring_SLP, The second argument is the program body built with prog_body.
The polynomial x^2 + y^2, which may be represented as the Straight Line Program : line 1 : InputNode x line 2 : InputNode y line 3 : OperationNode times line 1, line 1 line 4 : OperationNode times line 2, line 2 line 5 : OperationNode plus line 3, line 4 > may be encoded as :
The constructor of the body of the straight line program the arguments represent straight line instructions, as constructed by the following three constructors, op_node, inp_node and const_node, possibly wrapped in the return symbol (from the opnode CD). The order is taken to be the order in which they appear.
A quotient function for polynomials represented by slps. It is a requirement that this is an exact division.
Takes an slp as the argument, and returns the return node of the slp.
Takes as argument a node of an slp. Returns the value of the right hand pointer of the node.
The slp_degree of the polynomial x >= degree(x)
A unary function taking an slp as argument and returning the apparent multiplicative degree of the slp, without performing any cancellation.
slpDegree(convert(x^2)@poly_ring_SLP - convert(x^2)@poly_ring_SLP) = 2
This CD holds the polynomial symbols used by the OpenMath Small Type System. PolynomialRing is the equivalent of an Axiom category, whereas PolynomialRingD and PolynomialRingR are functors returning elements of that category, polynomial rings with a specific representation (at the abstract OMtree level)
The type of all polynomial rings, e.g. from polyr or polyd OCDs
This CD contains operators to deal with polynomials and more precisely Univariate Polynomials. Note that recursive polynomials are regarded as univariates in their most significant variable (as defined by the order in PolynomialRingR: the first variable to appear is the most significant), with monomials in decreasing order of exponent, and coefficients being polynomials in the rest of the variables, and therefore univariates are a special case. This is provided as a separate CD to allow for univariate-only operations (e.g. composition) and for systems that only understand univariates, e.g. NTL.
This CD contains operators to deal with polynomials and more precisely Univariate Polynomials. Note that recursive polynomials are regarded as univariates in their most significant variable (as defined by the order in PolynomialRingR: the first variable to appear is the most significant), with monomials in decreasing order of exponent, and coefficients being polynomials in the rest of the variables, and therefore univariates are a special case. This is provided as a separate CD to allow for univariate-only operations (e.g. composition) and for systems that only understand univariates, e.g. NTL. These polynomials are also used to express minimal polynomials for algebraic extensions (see setname2).
Based on recursive polynomials 2003-08-06 JHD
The polynomial x^6 + 3*x^5 +2 can be conceptually encoded as poly_u_rep(x, term(6,1), term(5,3), term(0,2)) It lies in polynomial_ring_u(Z,x)
The polynomial x^6 + 3*x^5 + 2 may be encoded as:
Univariates are just recursive polynomials in one variable (though constructed using isomorphic, but different, constructors).
The constructor of a univariate polynomial ring. The first argument is a ring (the ring of the coefficients), the second is the variable.
The constructor of Recursive Polynomials. The first argument is the polynomial ring containing the polynomial and the second is a "poly_u_rep".
The polynomial x^6 + 3*x^5 + 2 in the polynomial ring with the integers as the coefficient ring and variable x may be encoded as:
A constructor for monomials, that is products of powers and elements of the base ring. First argument is from N (the exponent of the variable implied by an outer poly_u_rep) second argument is a coefficient (from the ground field)
A CD for basic algorithmic concepts. We define the minimal machinery to write small programs in OpenMath encoding.
This symbol is used to assign values to variables. The syntax is assignment(variable, value), where variable is the encoding of an OpenMath variable (OMV) and value is an OpenMath object.
This symbol is meant to represent an arbitray block of code. A block of code can be empty. The syntax is block(obj1, obj2,...,objN), where obji is the OpenMath encoding of the ith sentence (or action) inside the body.
The following block of code { a := 153; a := a+1; } is encoded as
This symbol can be used to encode the arguments that will be pased to a function or procedure.
This symbol can be used to encode the arguments that a function or procedure can receive.
This symbol can be used to encode the for loop. The syntax is for(block1,conditional_block,block3,block4), where block1 is the inicialization block, conditional_block is the conditional block that determines the end of the loop, block3 is the incremental block and block4 is the body of the for loop. Each of this blocks should be present (althougth they can be empty).
The block of code defining the body of the function. The syntax is function_block(local_var,block1), where local_var encodes the local variables (private to the function body) and block1 is the body of the function. Both locar_var and block1 should be present (and of course both can be also empty).
Symbol function_call can be used to "call" already defined functions. The syntax is function_call(name, call_arguments), where name is the encoding of an OpenMath variable (OMV) representing the name of the function and call_arguments are the arguments to pass to the function. Both, name and call_arguments, should be present but call_arguments can be empty.
The function call "MyFunction(100)" is encoded as
The symbol function_definition can be is used to define a function. The syntax is function_definition(name, def_arguments, function_block), where name is the encoding of an OpenMath variable (OMV) representing the name of the funtion, def_arguments is the enconding of the arguments that the function receives and function_block is the body of the function (local variables declarations + body of the function). Functions are completely unaware of the rest of the "world" except for the information they received from the arguments. Functions are only allowed to return values by means of the return construct.
The function (in Maple notation), MyFunction:=proc(N) local i, Result; Result := 1; for i from 2 to N do Result := Result + i^10; od; Result; end;, is encoded as
The encoding of a function N --> 1+2^3+...+N^3 (uses the while loop) is
The encoding of a function the compute the Nth term of the Fibonacci sequence is
This symbol can be used to declare global variables as know to function.
The symbol can be used to encode the if, then, else construct. The syntax is if(conditional_block,block1,block2), where the conditional_block is the block that determines wich of the block of codes block1 and block2 is going to be executed, block1 is the then block and block2 if the else block. The conditional_block and block1 are required but block2 is optional.
This symbol can be used to declare local variables.
The block of code defining the body of the procedure. The syntax is procedure_block(local_var, global_var, block1), where local_var encodes the local variables (private to the procedure body), gloval_var are global variables that are know to the procedure and block1 is the body of the procedure. All these elements, locar_var, global_var and block1, should be present (but they can also be empty).
Symbol procedure_call can be used to "call" already defined procedures. The syntax is procedure_call(name, call_arguments), where name is the encoding of an OpenMath variable (OMV) representing the name of the function and call_arguments are the arguments to pass to the function. Both, name and call_arguments, should be present but call_arguments can be empty.
This symbol can be used to define a procedure. The sintax is procedure_definition(name, def_arguments, procedure_block), where name is the encoding of an OpenMath variable representing the name of the procedure, def_arguments encodes the argument the procedure can receive and procedure_block encodes the body of the procedure. Contrary to function procedures can have knowledge about global objects by means of the global_var construct (see procedure block).
This symbol can be used to return values from fuctions.
The symbol the while loop. The syntax is while(conditional_block, block1), where conditional_block is the block that determines when to stop the while loop and block1 is the body of the while loop.
This CD holds the definitions of the basic universal ("for all") quantifier and existential ("there exists") quantifier. It is intended to be `compatible' with the MathML elements representing these quantifiers.
This symbol represents the existential ("there exists") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression.
An example which represents the statement that there is no solution to x^n+y^n=z^n for n>2, that is: it is not true that there exists x,y,z,n | n>2 and x^n+y^n=z^n
This symbol represents the universal ("for all") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression.
An example to represent the statement for all real x, |sin(x)| <= 1
This CD defines symbols for basic integration of RDF data into OpenMath. It should serve as a starting point for future integration scenarios of Linked Data and mathematics. Author: Ken Wenzel, Fraunhofer IWU
A symbol to be used within an OpenMath attribute to specify the language of an RDF literal. The annotation value should be an OpenMath string.
An example to show the representation of the RDF literal "This is an English text."@en.
A symbol to be used within an OpenMath attribute to specify the type of an RDF literal which is represented as an OpenMath object. The annotation value should be an rdf.resource.
An example to show the representation of the typed RDF literal "This is a string."^^<http://www.w3.org/2001/XMLSchema#string> using a full IRI reference.
A symbol to be used as the head of the OpenMath application to construct a prefix mapping that can be used as a value of the prefixes attribution. The two arguments of this function should be OpenMath strings representing in order, the prefix and the corresponding namespace URI.
The prefix mappings rdfs:<http://www.w3.org/2000/01/rdf-schema#> and foaf:<http://xmlns.com/foaf/0.1/> for a rdf.resourceset may be represented by:
A symbol to be used within an OpenMath attribute to specify one or more RDF namespace prefixes. The annotation value should be a set1.set of pairs of strings (prefix name, namespace URI) constructed with the prefix symbol.
This symbol represents an unary construction function for representing a specific RDF resource. It takes one string argument denoting an IRI reference as prefixed name in the form "prefix:resourceName" or as a full IRI in the form ">IRI<".
An example to show the representation of the resource http://example.org/persons#Alice using a full IRI reference.
An example to show the representation of the resource http://example.org/persons#Alice using the prefixed name example:Alice.
This symbol represents an unary construction function for constructing a set of RDF resources. It takes one string argument representing a Manchester Syntax description as described by http://www.w3.org/TR/owl2-manchester-syntax/#Descriptions in order to construct a set of RDF resources. Please note that it may also be possible to represent the class description by using OpenMath set operations: rdf.resourceset( set1.intersect( rdf.resourceset("foaf:Person"), set1.suchthat(rdf.resourceset("rdfs:Resource"), fns1.lambda[$r -> set1.size(rdf.valueset("foaf:age", $r) > 0)]) ) )
An example to show the representation of the class of FOAF persons with a known age.
This symbol represents a function for accessing the value of an RDF property. It takes two arguments, a string denoting the property and an object denoting the RDF resource whose property value should be retrieved.
An example that retrieves the property value for http://xmlns.com/foaf/0.1/age of the resource http://example.org/persons#Alice.
This symbol represents a function for accessing all values of multivalued RDF property. It takes two arguments, a string denoting the property and an object denoting the RDF resource whose property values should be retrieved.
An example that retrieves the property values for http://xmlns.com/foaf/0.1/knows of the resource http://example.org/persons#Alice and hence all persons known by Alice.
Binary relations properties, equivalence relation, orders, up to the definition of a setoid as a set with an equivalence relations defined on its elements. Initial version: O. Caprotti
Defined as [A:symtype][R: (relation A)](x,y:A)(R x y) -> (R y x) -> (relation1::eq x y)
Proposition; the type of antisymmetric binary relations.
Defined as [A:symtype][R: (relation A)] (reflexive R) /\ (symmetric R) /\ (transitive R)
Proposition; the type of equivalence relations, namely relations that are reflexive, symmetric and transitive.
Defined as [A:symtype][R: (relation A)](x:A) ~(R x x)
Proposition; the type of irreflexive binary relations.
Defined as [A:symtype][R: (relation A)] (reflexive R) /\ (antisymmetric R) /\ (transitive R)
Proposition; the type of order relations, namely relations that are reflexive, antisymmetric and transitive.
Defined as [A:symtype][R: (relation A)] (symmetric R) /\ (transitive R)
Proposition; the type of partial_equivalence relations, namely relations that are symmetric, and transitive.
Defined as [A:symtype][R: (relation A)] (reflexive R) /\ (transitive R)
Proposition; the type of preorder relations, namely relations that are reflexive and transitive.
Defined as [A:symtype][R: (relation A)](x:A)(R x x)
Proposition; the type of reflexive binary relations.
Type constructor; returns the type of binary relations on a set.
Defined as [A:symtype][R: (relation A)] (irreflexive R) /\ (antisymmetric R) /\ (transitive R)
Proposition; the type of strict order relations, namely relations that are irreflexive, antisymmetric and transitive.
Defined as [A:symtype][R: (relation A)](x,y:A)(R x y) -> (R y x)
Proposition; the type of symmetric binary relations.
Defined as [A:symtype][R: (relation A)](x,y,z:A)(R x y) -> (R y z) -> (R x z)
Proposition; the type of transitive binary relations.
This CD holds the common arithmetic relations. It is intended to be `compatible' with the appropriate MathML elements.
This symbol is used to denote the approximate equality of its two arguments.
This symbol represents the binary equality function.
An example which represents the statement 1 + 2 = 3.
This symbol represents the binary greater than or equal to function which returns true if the first argument is greater than or equal to the second, it returns false otherwise.
An example which represents the statement 1 + 2 >= 3
This symbol represents the binary greater than function which returns true if the first argument is greater than the second, it returns false otherwise.
An example which represents the statement 1 + 2 > 2
This symbol represents the binary less than or equal to function which returns true if the first argument is less than or equal to the second, it returns false otherwise.
An example which represents the statement 1 + 2 <= 4
This symbol represents the binary less than function which returns true if the first argument is less than the second, it returns false otherwise.
An example which represents the statement 1 + 2 < 4
it is not true that a=/b and b=/c implies a=/c
This symbol represents the binary inequality function.
An example which represents the statement 1 + 2 not = 2
This CD holds further definitions of symbols that represent relations in some way; at present this only includes a definition for approx.
This CD holds the basic equivalence relation notions.
This symbol represents a ternary function whose first argument is a set S, whose second argument is a relation R on S, and whose third argument is an element a of S. When applied to S, R, and a, it represents the set of all elements in S related to a by R, that is, the set {b in S | (a,b) in R}.
The classes of a reflexive relation R on S cover S, as a in S belongs to class(S,R,a).
The classes of an equivalence relation R on S partition S.
This symbol represents a binary function whose first argument is a set S, whose second argument is a relation R on S. When applied to S and R, it represents the set of all elements in S of the form class(S,R,a) for a in S.
This symbol represents a binary function whose first argument is a set S, whose second argument is a relation R on S. When applied to S and R, it represents the smallest equivalence relation (with respect to inclusion) on S containing R.
R is an equivalence relation on S if and only if R is a symmetric, reflexive, transitive relation on S.
This symbol represents the boolean binary function which returns true if and only if the second argument is a symmetric relation on the first.
is_reflexive(S,R) if and only if, for all, a in S, we have (a,a) in R.
This symbol represents the boolean binary function which returns true if and only if the second argument is a reflexive relation on the first.
R a subset of S x S if and only if is_relation (S,R).
This symbol is a boolean function of two arguments, S and R. The first argument should be a set. When applied to S and R, the function returns true if and only if the second argument is a subset of the Cartesian product of S with itself.
is_symmetric(S,R) if and only if, for all a, b in S with (a,b) in R, we have (b,a) in R.
R is transitive on S if and only if, for all a,b,c in S with (a,b) in R and (b,c) in R, wehave (a,c) in R.
This symbol represents the boolean binary function which returns true if and only if the second argument is a transitive relation on the first.
This symbol represents a binary function whose first argument is a set S, whose second argument is a relation R on S. When applied to S and R, it represents the smallest reflexive relation (with respect to inclusion) on S containing R.
This symbol represents a binary function whose first argument is a set S, whose second argument is a relation R on S. When applied to S and R, it represents the smallest symmetric relation (with respect to inclusion) on S containing R.
This symbol represents a binary function whose first argument is a set S, whose second argument is a relation R on S. When applied to S and R, it represents the smallest transitive relation (with respect to inclusion) on S containing R.
This CD holds further definitions of symbols that represent relations in some way; at present this only includes a definition for n-ary equality.
This symbol is used to denote the n-ary version of equality. When applied to n arguments a1, ..., an, it represents the boolean expression that a1, a2, ,,, and an are equal.
This symbols represents a unary function, whose argument should be a ring. It returns the addition on the ring. We will allow for the map to be n-ary.
This symbol is a unary function, whose argument should be a ring S. When applied to S its value is the monoid underlying S.
This symbol represents a unary function, whose argument should be a ring S (for instance constructed by ring). When applied to S, its value should be the set of elements of S.
This symbol is a function with two arguments. Its first argument should be a ring. The second should be an arithmetic expression A, whose operators are times, plus, minus, unary_minus, and power, and whose leaves are members of the carrier of G. (Here an integer m will be interpreted as a member of G by interpreting it as the sum of m copies of the identity element, the symbol alg1.one will be interpreted as the identity, and the symbol alg1.zero will be interpreted as the zero of G.) When applied to G and A, it denotes the element (of G) that is the element obtained from the leaves by applying the arithmetic operations of G instead of those from the CD arith1.
This symbols represents a unary function, whose argument should be a ring. It returns the identity element of the ring.
The unary boolean function whose value is true iff the argument is a commutative ring.
If is_subring(G,H) then H is a nonempty set of elements of the carrier of G and H is closed under multiplication and taking inverses.
The binary boolean function whose value is true iff the second argument is a subring of the second.
This symbol represents a unary function, whose argument should be a ring S. It returns the multiplication map on S. We allow for the map to be n-ary.
The multiplication of ring(R,+,0,-,*,1) is *.
This symbol represents a unary function, whose argument should be a ring S. It returns the map sending an element of S to its additive inverse.
This is a symbol with two or three arguments. Its first argument should be a an element g of a ring and the second argument should be an integer. The optional third argument is the ring G containing g. It denotes the element g^k in G.
The distributive laws m(x,a(y,z)) = a(m(x,y),m(x,z)) and m(a(y,z),x) = a(m(y,x),m(z,x)), where x,y,z are elements of R, should hold.
This symbol is a constructor for rings. It takes six arguments R, a, o, i, m, e,: which are, respectively, a set R to specify the elements in the ring, a binary operation a on R, an element o of R, and a unary operation i on R such that [R,a,o,i] is a commutative group, a binary operation m on R and an element e of R such that [R,m,e] is a monoid.
This example represents the ring which has as elements all rational integers. The ring addition is binary addition, the ring multiplication is binary multiplication.
This symbol is a constructor symbol with one or two arguments. The first argument is a list or set, D, of ring elements. The optional second argument is the ring G containing D. It denotes the subring of G generated by D.
This example represents the subring of the multiplicative ring of the nonzero reals generated by the constants Pi and E:
This symbols represents a unary function, whose argument should be a ring. It returns the binary operation of subtraction on the ring.
The subtraction of ring(R,+,0,-,*,1) is the map sending the pair (r,s) of elements of R to r-s.
This symbols represents a unary function, whose argument should be a ring. It returns the zero element of the ring.
Basic functions for homomorphisms in ring theory
This symbol is a boolean function with two arguments. The first is a ring M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a ring automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a ring M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a ring endomorphism from M to M.
This symbol is a boolean function with three arguments. The first and arguments are rings M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a ring homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are rings M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a ring isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are rings. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
This symbol is a function with two arguments, which should be a ring M and an element x of M. When applied to M and x, it denotes left multiplication on M by x.
This symbol is a function with two arguments, which should be a ring M and an element x of M. When applied to M and x, it denotes right multiplication on M by x.
A CD of functions for basic constructions in ring theory. The quaternion definition is still very shaky.
This is a symbol with two arguments. The first argument should be a ring S and the second argument a positive integer n. It denotes the direct product of n copies of S.
This is a symbol with two or more arguments, all of which are rings. It denotes the ring that is the direct product of its arguments.
This symbol represents a binary function. The first argument should be a ring and the second a list or a set. When evaluated on such arguments R and L, the function represents the free ring over R generated by the elements (or entries) of L. This ring can also be viewed as the ring of non-commutative polynomials over R with variables the elements of L.
The free ring over R on the letters a, b:
This symbol represents a binary function. The first argument is a ring R and the second argument is a list or a set. When evaluated on R and such a second argument, the function represents the ideal in R generated by the entries of the list or set.
The ideal in the free ring on the letters a, b generated by a*b-b*a:
The ring of integers is (Z, +,0,-,*,1), where +,-,* are the standard arithmetic operations.
This is a symbol representing the ring of integers.
The carrier of the multiplicative group of the ring R is the set of invertible elements of R.
This is a unary function, whose argument is a ring R. When applied to R, it denotes the set of invertible elements of R with respect to the multiplication on R.
If is_ideal(S,I) then I is a nonempty set of elements of S and I is a subgroup of the additive group of S and closed under multiplication by elements of S.
The binary boolean function whose value is true if and only if the second argument is an ideal of the second.
The kernel of a ring homomorphism is an ideal.
This symbol represents a unary function. Its argument is a ring homomorphism f : R -> S. When evaluated on f, the function represents the kernel in R of f, that is, the subset {x in R | f(x) = 0}.
This symbol represents a binary function. The first argument should be a ring and the second a list or a set. When evaluated on such arguments R and L, the function represents the free commutative ring over R generated by the elements (or entries) of L. This ring can also be viewed as the ring of polynomials over R with variables the elements of L.
The polynomial ring over R with variables a, b:
The ring of 1 x 1 matrices over R is isomorphic to R.
This symbol represents a binary function. The first argument is a positive integer n, the second is a ring R. When evaluated on such argument n and R, the function represents the ring of n x n matrices over R.
The multiplicative group of the ring R is the group of invertible elements of the multiplicative monoid of R.
This is a unary function, whose argument is a ring R. When applied to R, it denotes the group of invertible elements of R with respect to the multiplication on R.
This symbol represents a binary function. The first argument should be a ring and the second a variable. When evaluated on such arguments R and X, the function represents the free commutative ring over R generated by X. This ring can also be viewed as the ring of polynomials over R with indeterminate X.
The polynomial ring over R with indeterminate X:
This symbol represents a binary function. The first argument is a ring R and the second argument is an element of R. When evaluated on R and such a second argument, the function represents the ideal in R generated by the second argument.
The ideal in the free ring over the rationals on the letters a, b generated by a*b-b*a:
This is a binary function, whose first argument is a ring R and whose second argument is an ideal I of R. When applied to R and I, it denotes the quotient ring of R by I.
The carrier of the ring of integers modulo 2 is introduced as Zm(2) in the CD setname2. The ring can also be defined as follows.
Using the xref mechanism it can also be represented as
A CD of functions for further basic properties of rings
This symbol represents a boolean unary function. The argument is a ring R. When evaluated on R, the function returns true if R is a domain and false otherwise. A domain is a commutative ring without zero divisors.
If is_commutative(G) and for all a in carrier(G) there is b in carrier(G) such that a*b = identity(G), then is_field(G).
This is unary boolean function whose argument should be a ring R. The value is true if and only if the ring is commutative and every nonzero element has a multiplicative inverse.
The binary boolean function whose value is true iff the second argument is a maximal ideal of the first.
The binary boolean function whose value is true iff the second argument is a prime ideal of the first.
An element x of a ring R is a zero divisor if and only if it nonzero and there is a nonzero y in R such that x * y = 0 or y * x = 0.
This symbol represents a boolean binary function. The first argument is a ring R, the second is an element x of R. When evaluated on R and x, the function returns true if x a zero divisor and nonzero in R.
A CD of functions for relating ring elements their images in quotient rings
This is a function with a single argument which must be a ring. It refers to the automorphism group of its argument.
This is a function with three arguments the first two of which must be monoids F and K. The third argument should be a set or a list L of ordered pairs (lists of length 2). Each pair [x,y] from L consists of an element x from F and an element y from K. when applied to F, K, and L, the symbol represents the monoid homomorphism from F to K that maps the first entry x of each pair [x,y] to the second entry y of the same pair.
This symbol is a binary function whose first argument is a ring R, and whose second argument is a univariate polynomial f with coefficients from R. So, if the indeterminate is X, when applied to R and f, the function has value the natural quotient map from R[X] to the quotient ring R[X]/(f).
This symbol is a binary function whose first argument is a ring R and whose second argument is an ideal I of R. When applied to R and I, its value is the natural quotient map from R to the quotient ring R/I.
A CD of names of frequently used rings in ring theory.
The carrier set of this ring is the set of integers.
The integer 1 is the identity element of this ring.
This symbol represents the ring of integers.
This symbol represents the ring of integers modulo m, where m is not necessarily a prime. It takes one argument, the integer m.
The quaternion ring over R is isomorphic to the quotient of the free ring over R generated by i, j, k subject to the relations ij=-ji=k and i^2=j^2=k^2=-1.
This symbol represents a unary function. Its argument is a ring R. When evaluated on R, the function represents the ring of quaternions over R, that is, the ring with basis 1,i,j,k over R such that ij=-ji=k, i^2=j^2=k^2=-1.
Written by James Davenport, inspired by the need from bigfloat.ocd. Finished 1999-10-24.
for all x | ceiling(x)-1 < x <= ceiling x
The round down (to -infinity) operation.
for all x | Also round to even in event of a tie
for all x | x <= round(x)+1/2 and x >= round(x)-1/2
for all x | trunc(x) <= x < trunc(x)+1 (x>0)
for all x | trunc(x) >= x > trunc(x)-1 (x<0)
This CD holds the definitions of the basic statistical functions used on sample data. It is intended to be `compatible' with the MathML elements representing statistical functions, though it does not cover the concept of random variable which is mentioned in MathML.
The mean of n arguments is their sum divided by their number
This symbol represents an n-ary function denoting the mean of its arguments. That is, their sum divided by their number.
This symbol represents an n-ary function denoting the median of its arguments. That is, if the data were placed in ascending order then it denotes the middle one (in the case of an odd amount of data) or the average of the middle two (in the case of an even amount of data).
The mode of n arguments is that value which occurs with the greatest frequency.
This symbol represents an n-ary function denoting the mode of its arguments. That is the value which occurs with the greatest frequency.
This symbol is used to denote the i'th moment of a set of data. The first argument should be the degree of the moment (that is, for the i'th moment the first argument should be i), the second argument should be the point about which the moment is being taken and the rest of the arguments are treated as the data. For n data values x_1, x_2, ..., x_n the i'th moment about c is (1/n) ((x_1-c)^i + (x_2-c)^i + ... + (x_n-c)^i). See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, section 7.7.1.
This is an example to denote the 2'nd moment of a set of data about the origin.
The square of the standard deviation of n arguments is the sum of the squares of the differences from their mean divided by the number of arguments.
This symbol represents a function requiring two or more arguments, denoting the sample standard deviation of its arguments. That is, the square root of (the sum of the squares of the deviations from the mean of the arguments, divided by the number of arguments). See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, (7.7.11) section 7.7.1.
This is an example to denote the standard deviation of a set of data
The variance of n arguments is the square of the standard deviation of those arguments.
This symbol represents a function requiring two or more arguments, denoting the variance of its arguments. That is, the square of the standard deviation.
This is an example to denote the variance of a set of data
This CD holds the definitions of the basic statistical functions used on random variables. It is intended to be `compatible' with the MathML elements representing statistical functions.
mean(f(X)) = int(x*f(x)) w.r.t. x over the range [-infinity,infinity]
This symbol represents a unary function denoting the mean of a distribution. The argument is a univariate function to describe the distribution. That is, if f is the function describing the distribution. The mean is the expression integrate(x*f(x)) w.r.t. x over the range (-infinity,infinity).
the i'th moment of f(X) about c = integral of (x-c)^i*f(x) with respect to x, over the interval (-infinity,infinity)
This symbol represents a ternary function to denote the i'th moment of a distribution. The first argument should be the degree of the moment (that is, for the i'th moment the first argument should be i), the second argument is the value about which the moment is to be taken and the third argument is a univariate function to describe the distribution. That is, if f is the function which describe the distribution. The i'th moment of f about a is the integral of (x-a)^i*f(x) with respect to x, over the interval (-infinity,infinity).
The standard deviation of a distribution is the arithmetical mean of the squares of the deviation of the distribution from the mean.
This symbol represents a unary function denoting the standard deviation of a distribution. The argument is a univariate function to describe the distribution. The standard deviation of a distribution is the arithmetical mean of the squares of the deviation of the distribution from the mean.
The variance of a distribution is the square of the standard deviation of the distribution.
This symbol represents a unary function denoting the variance of a distribution. The argument is a function to describe the distribution. That is if f is the function which describes the distribution. The variance of a distribution is the square of the standard deviation of the distribution.
The definition of a semigroup as setoid with a binary operation. Initial version: O. Caprotti
Is defined as Lambda {sg_Carrier:> Setoid; sg_op: mapsto(sg_Carrier sg_Carrier sg_Carrier)}. SigmaType{ sg_Carrier:> Setoid; sg_op: mapsto(sg_Carrier sg_Carrier sg_Carrier); (associative sg_Carrier sg_op) }
The contructor for the type of semigroups as a Setoid with a binary operation.
Is defined as Lambda {sg_Carrier:> Setoid; sg_op: mapsto(sg_Carrier sg_Carrier sg_Carrier)}. PiType{ x,y,z: sg_Carrier }. eq(sg_op(x, sg_op(y,z)), sg_op( sg_op(x,y),z))
The type of associative binary operation.
Is defined as Lambda {sg_Carrier:> Setoid; sg_op: mapsto(sg_Carrier sg_Carrier sg_Carrier); proof: (associative sg_Carrier sg_op)}. Tuple (Setoid, sg_op, proof)
The contructor for the tuples consisting of a setoid, and an associative binary operation.
Initiated by Arjeh M. Cohen 2003-05-17 Edited AMC 2004-0304
This symbol represents a unary function, whose argument should be a semigroup S (for instance constructed by semigroup). When applied to S, its value should be the set of elements of S.
This symbol is a function with two arguments. Its first argument should be a semigroup G. The second should be an arithmetic expression A, whose operators are times and power, and whose leaves are members of the carrier of G. The second argument of power should be positive. When applied to G and A, it denotes the element (of G) that is obtained from the leaves of A by applying the multiplication and the power map of G instead of the times and power of the CD arith1 appearing in A.
This symbol is a ternary function. Its first argument should be a semigroup S and the second and third arguments should be elements of S. When applied to S, a, and b, it denotes the fact that a is a divisor of b in S. This means that there are u,v in carrier(S) such that uav=b.
If is_commutative(S) then for all a,b in carrier(S) a*b = b*a
The unary boolean function whose value is true iff the argument is a commutative semigroup.
If is_subsemigroup(S,T) then T is a set of elements of S and T is closed under multiplication.
The binary boolean function whose value is true iff the second argument is a subsemigroup of the second.
This symbol is a unary function. Its argument should be a semigroup S. When applied to S, it denotes the magma with the same element set and binary operation as S.
This symbol represents a unary function, whose argument should be a semigroup S. It returns the multiplication map on S. We allow for the map to be n-ary.
The multiplication of semigroup(S,*) is *.
A semigroup is closed under its operation. A semigroup operation is associative.
This symbol is a constructor for semigroups. It takes two arguments in the following order: a set to specify the elements in the semigroup, and a binary operation to specify the semigroup operation. The binary operation should act on elements of the set and return an element of the set.
This example represents the semigroup of all functions f: R -> R with function composition as the operation.
This symbol is a constructor symbol with two arguments. The first argument is a semigroup S, the second a list or set, D, of elements of S. When applied to S and D, it denotes the subsemigroup of S generated by D.
This example represents the subsemigroup of the multiplicative semigroup of the nonzero reals generated by the constants Pi and E:
This symbol is a boolean function with two arguments. The first is a semigroup M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes a semigroup automorphism f of M.
This symbol is a boolean function with two arguments. The first argument is a semigroup M, the second is a map f from the element set of M to the element set of M. When applied to M and f, it denotes that f is a semigroup endomorphism from M to M.
This symbol is a boolean function with three arguments. The first and arguments are semigroups M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a semigroup homomorphism from M to N.
This symbol is a boolean function with three arguments. The first and arguments are semigroups M, N, the third is a map f from the element set of M to the element set of N. When applied to M, N, and f, it denotes that f is a semigroup isomorphism from M to N. This means that f is a homomorphism from M to N, that f is bijective, and that its inverse is a homomorphism from N to M.
This symbol is a Boolean function with n arguments, n at least 2, which are semigroups. When applied to M_1, ..., M_n, it denotes the fact that there is an isomorphism from each M_i to each M_j.
This symbol is a function with two arguments, which should be a semigroup M and an element x of M. When applied to M and x, it denotes left multiplication on M by x.
This symbol is a function with two arguments, which should be a semigroup M and an element x of M. When applied to M and x, it denotes right multiplication on M by x.
This is a function with a single argument which must be a semigroup. It refers to the automorphism group of its argument.
The size of cyclic_semigroup(k,l) equals k+l.
This symbol denotes the cyclic semigroup with a cycle of length l and a tail of length k.
This is a binary function whose first argument should be a semigroup M and whose second argument should be a natural number n. It refers to the direct product of n copies of M.
This is an n-ary function whose arguments must be semigroups. It refers to the direct product of its arguments.
This symbol represents a binary function. The argument is a list or a set. When evaluated on such an argument, the function represents the free semigroup generated by the entries of the list or set.
The left regular representation is a homomorphism of semigroups from M to the maps semigroup on M.
This is a unary function whose argument must be a semigroup M. When applied to M, it represents the map from M to the maps semigroup on M that assigns to m left multiplication by m on M.
This is a unary function whose argument must be a set X or a positive integer. When applied to X, it refers to the semigroup of all functions from X to X if X is a set and to {1,...,X} if X is an integer, whose binary operation is composition of maps and whose identity element is the identity map on the set X, respectively {1,...,X}.
A CD of functions for morphisms of semigroups.
This is a function with three arguments the first two of which must be semigroups F and K. The third argument should be a set or a list L of ordered pairs (lists of length 2). Each pair [x,y] from L consists of an element x from F and an element y from K. when applied to F, K, and L, the symbol represents the homomorphism from F to K that maps the first entry x of each pair [x,y] to the second entry y of the same pair.
This CD defines the set functions and constructors for basic set theory. It is intended to be `compatible' with the corresponding elements in MathML.
This symbol represents an n-ary construction function for constructing the Cartesian product of sets. It takes n set arguments in order to construct their Cartesian product.
An example to show the representation of the Cartesian product of sets: AxBxC.
The intersection of A with the emptyset is the emptyset
This symbol is used to represent the empty set, that is the set which contains no members. It takes no parameters.
if a is in A and a is in B then a is in A intersect B
This symbol has two arguments, an element and a set. It is used to denote that the element is in the given set.
This symbol is used to denote the n-ary intersection of sets. It takes sets as arguments, and denotes the set that contains all the elements that occur in all of them.
This symbol represents a mapping function which may be used to construct sets, it takes as arguments a function from X to Y and a set over X in that order. The value that is returned is a set of values in Y. The argument list may be a set or an integer_interval.
The set of even values between 0 and 20, that is the values 2x, where x ranges over the integral interval [0,10].
if a is a member of a then it is not true that a is not a member of A
This symbol has two arguments, an element and a set. It is used to denote that the element is not in the given set.
A is not a proper subset of B implies that it is not true that A is a proper subset of B
This symbol has two (set) arguments. It is used to denote that the first set is not a proper subset of the second. A proper subset of a set is a subset of the set but not actually equal to it.
{1,2,3} is not a proper subset of {1,2,3}
if A is not a subset of B then there exists an x in B s.t. x is not a member of B
This symbol has two (set) arguments. It is used to denote that the first set is not a subset of the second.
A is a proper subset of B implies that A is a subset of B and A not= B
This symbol has two (set) arguments. It is used to denote that the first set is a proper subset of the second, that is a subset of the second set but not actually equal to it.
This symbol represents the set construct. It is an n-ary function. The set entries are given explicitly. There is no implied ordering to the elements of a set.
This symbol is used to denote the set difference of two sets. It takes two sets as arguments, and denotes the set that contains all the elements that occur in the first set, but not in the second.
This symbol is used to denote the number of elements in a set. It is either a non-negative integer, or an infinite cardinal number. The symbol infinity may be used for an unspecified infinite cardinal.
The size of the set of integers is infinite
This symbol has two (set) arguments. It is used to denote that the first set is a subset of the second.
This symbol represents the suchthat function which may be used to construct sets, it takes two arguments. The first argument should be the set which contains the elements of the set we wish to represent, the second argument should be a predicate, that is a function from the set to the booleans which describes if an element is to be in the set returned.
This example shows how to construct the set of even integers, using the suchthat constructor.
This symbol is used to denote the n-ary union of sets. It takes sets as arguments, and denotes the set that contains all the elements that occur in any of them.
A lift_binary(op) B = { a op b: a in A and B in B }
This symbol denotes the lift of a binary operator on elements of X to a component-wise operators on subsets of X.
Note that, to write this as an FMP, we have to assume a universal U such that A, B and A lift_binary(op) B are subsets of U.
This symbol is a unary function whose argument should be a collection C of subsets of a given set. When applied to C, it represents the intersection over all members of C.
This symbol is a unary function whose argument should be a collection C of subsets of a given set. When applied to C, it represents the union over all members of C.
This symbol is a binary function whose first argument should be a set A and whose second argument should be a natural number k. When applied to A and k, it represents the Cartesian product of k copies of A.
This symbol represents a binary function whose first argument should be a set and whose second argument should be a natural number. When applied to a set X and a number k, it represents the collection of all subsets of X of size k.
This symbol represents a function with three arguments. The first argument is a function assignment f (in the form of a lambda binding), the second argument is a set X. The third argument specifies a Boolean function P on X defining the subset Z of X (so Z = {x in X| P(x)}) on which the first argument f is defined, The symbol is used to denote the image {f(x) | x in X and P(x)} of application of the function f on the elements of Z.
One may form a set in the following way. This gives the set {2^2, 4^2, ... , 10^2 }
This symbol represents a function with three arguments. The first argument is a function assignment f (in the form of a lambda binding), the second argument is a set X on which the first argument f is defined. The third argument specifies the range Y of the function. The symbol is used to denote the image {f(x) in Y | x in X} of application of the function f on the elements of X (so as to form a subset of Y).
The definition of a product of subsets X and Y of a group G:
This symbol represents a function with four arguments. The first argument is a function assignment f (in the form of a lambda binding), the second argument is a set X on which the first argument f is defined. The third argument specifies the range Y of the function. The fourth argument specifies a Boolean function P on X defining the subset Z of X (so Z = {x in X| P(x)}) on which the first argument f is defined, The symbol is used to denote the image {f(x) in Y | x in X and P(x)} of application of the function f on the elements of Z.
The intersection over all subsets of a given set X is the empty set.
This symbol represents unary function whose argument should be a set. When applied to a set X, it represents the collection of all subsets of X.
This CD defines common sets of mathematics
Written by J.H. Davenport on 1999-04-18. Revised to add Zm, GFp, GFpn on 1999-11-09. Revised to add QuotientField and A on 1999-11-19.
for all z | if z is complex then there exist reals x,y s.t. z = x + i * y
This symbol represents the set of complex numbers.
for all n | n in the natural numbers is equivalent to saying n=0 or n-1 is a natural number
This symbol represents the set of natural numbers (including zero).
for all n | n is a positive prime number is equivalent to: n is a natural number and n > 1 and ((n=a*b and a and b are natural numbers) implies ((a=1 and b=n) or (b=1 and a=n)))
This symbol represents the set of positive prime numbers.
for all a,b | a,b rational with a<b implies there exists rational a,c s.t. a<c and c<b
for all z where z is a rational, there exists integers p and q with q > 1 and p/q = z
This symbol represents the set of rational numbers.
S \subset R and exists y in R : forall x in S x <= y) implies exists z in R such that (( forall x in S x <= z) and ((forall x in S x <= w) implies z <= w)
This symbol represents the set of real numbers.
for all z | the statements z is an integer and z is a natural number or -z is a natural number are equivalent
This symbol represents the set of integers, positive, negative and zero.
This CD defines some common sets of mathematics.
Written by J.H. Davenport on 1999-04-18. Revised to add Zm, GFp, GFpn on 1999-11-09. Revised to add QuotientField and A on 1999-11-19. AlgebraicExtension added 2003-09-16
The algebraic numbers are a proper subset of the reals
The rationals are a proper subset of the algebraic numbers
This symbol represents the set of algebraic numbers.
This symbol represents an algebraic extension of any integral domain.
The complex numbers are the extension of the reals by a root of x^2+1
for all b in the booleans | (there exists an nb in the booleans | nb not= b implies nb = not b)
This symbol represents the set of Booleans. That is the truth values, true and false.
This symbol represents the finite field of integers modulo p, where p is a prime.
This symbol represents the finite field with p^n elements, where p is a prime.
1 is a quaternion and there exists i,j,k s.t. i,j,k are quaternions and i^2 = j^2 = k^2 = ijk = -1 with abs(i) not = abs(j) not = abs(k) not = 1 implies for all q, q a quaternion implies there exists r_0, r_1, r_2, r_3 reals s.t. q = r_0 + r_1*i + r_2*j + r_3*k
This symbol represents the set of quaternions.
There exists a,b in the quaternions s.t. a*b neq b*a
This symbol represents the quotient field of any integral domain.
The rationals equals QuotientField(Integers)
for all x in the integers modulo m | there exists an n such that n is an integer and n <= m and x^n = x
This symbol represents the set of integers modulo m, where m is not necessarily a prime. It takes one argument, the integer m.
The function_set operator generates the set of functions between the sets specified as its arguments.
The function_set operator generates the set of functions between the sets specified as its arguments. cf Hom(A,B) in Category theory, and mapsto in the sts CD. For a set of n-argument functions, function_set will take n+1 arguments, specifying the sets of the n arguments and the range.
The definition of a setoid as a set with an equivalence relations defined on its elements. Initial version: O. Caprotti
Is defined as Lambda {Carrier:> symtype; Eq: (relation Carrier)}. SigmaType{ Carrier:> symtype; Eq: (relation Carrier); (equivalence Carrier Eq) }
The contructor for the type of set with an equivalence relation on it.
Is defined as Lambda {Carrier:> symtype; Eq: (relation Carrier) proof: (equivalence Carrier Eq)}. Tuple (Carrier, Eq, proof)
The contructor for the tuples consisting of a set, an equivalence relation on the set, and a proof that the relation is actually an equivalence relation.
Sigma Types for OM Declaration of symbols for types and objects An OpenMath object which uses any of the symbols here defined, has to use them in accordance with the definitions in ESPRIT deliverable 1.3.2b . Initial version: O. Caprotti and H. Elbers (July 2, 1998) Updated: O. Caprotti (March 5, 1999) Updated: O. Caprotti (May 20, 1999) added "mapsto", made a CDGroup
The pairing constructor. It takes two OpenMath objects as first element and second element of the pair, and a third optional OpenMath object that represents the type of this pair.
The first projection function. It satisfies sigma-reduction.
The second projection function. It satisfies sigma-reduction.
The type constructor of cartesian products. It takes a list of type-attributed variables and an OpenMath object.
Definitions of the symbols used by the OpenMath Small Type System.
Denotes an OpenMath object that is to be thought of as something that represents a numerical value, or a numerical value.
The generic signature for the function power:
The signature for list, to show that list has the signature: Object* -> Object
Denotes an OpenMath object that is to be thought of as something that represents a set of numerical values, or a set of numerical values.
The generic signature for the function arctan from transc3:
An `attribution' object consists of pairs of keys and values. The use of the symbol `attribution' in a signature indicates that the symbol is to be used as a key.
An `OMBIND' object has three parts: a "binder" such as "lambda" or "for all", a (list of) bound variables, and an expression. The use of `binder' in a signature indicates that we are describing something which can only be used as the first child of an OMBIND construct.
The error symbol is the 'return type' of error symbols in the error signature file.
This symbol represents the construction of a function type. The first n-1 children denote the types of the arguments, the last denotes the return type.
The signature of the power function: (Real , Integer) -> Real
Constructs a child of mapsto which denotes an arbitrary number of copies of the argument of nary.
The signature for list, an n-ary function:
Constructs a child of mapsto which denotes an arbitrary number of copies of the argument of nassoc. The operator is associative on these arguments which means that repeated uses may be flattened/unflattened.
The signature for plus, an associative n-ary function:
The structure element is used to represent a structure of a particular (algebraic) type.
The signature of a function which given a set will return an element of that set:
The variable z is attributed with a type for complex numbers.
Symbols for constructing compound (parameterised) types in the OpenMath small type system.
A constructor for an interval over a set.
A constructor for the type of a homogeneous list
A constructor for the type of a square matrix
A constructor for the type of a vector of size n
This CD defines content markup symbols which may be used to represent tensor formulae,particularly with index notation.
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. Author: Joseph B. Collins (2010), Naval Research Laboratory, Washington, DC. Copyright Notice: This is a work of the U.S. Government and is not subject to copyright protection in the United States. Foreign copyrights may apply.
partialdiff(Cartesian(i), Cartesian(j)) = Kronecker_tensor(i,j)
tuple(X, Y, Z) = tuple(Cartesian(1), Cartesian(2), Cartesian(3))
This symbol takes one argument, a natural number, and returns the Cartesian coordinate, of a right handed Cartesian coordinate frame, corresponding to the value of the argument. These coordinates are commonly named X, Y, and Z in three dimensions, though X, Y, and Z are non-exclusively used for this and other purposes.
tensor_selector(Kronecker_tensor, tuple(unit_Cartesian(1), unit_Cartesian(2), unit_Cartesian(3)), contra_index(i), covar_index(i)) = 1 OR tensor_selector(Kronecker_tensor, tuple(unit_Cartesian(1), unit_Cartesian(2), unit_Cartesian(3)), contra_index(i), covar_index(j)) = 0 AND (i != j)
This symbol represents the Kronecker tensor or Kronecker delta.
This symbol represents the Levi-Civita alternating pseudo-tensor or permutation symbol. It's definition depends on the number of dimensions, d, of the space: it has as many indexes as there are dimensions in the space. It is totally antisymmetric, its value being: 1 for an even permutation of unequally valued indexes (e.g., (1,2,...,d)); -1 for an odd permutation of unequally valued indexes, and; 0 whenever two indexes take the same value.
unit_Cartesian(1) = basis_selector(tuple(unit_Cartesian(1), unit_Cartesian(2), unit_Cartesian(3)), covar_index(1))
This symbol takes 2 arguments, a tuple of basis elements and a covar_index or a contra_index, and returns the basis element indicated by the index value.
This symbol takes a natural number as its argument and returns a contravariant index.
This symbol takes a natural number as its argument and returns a covariant index.
This symbol represents the metric tensor, typically depicted using a lower case g. The metric tensor is a nondegenerate, symmetric bilinear form. It defines the ideas of leng th and angle in a metric space, the most common example being the Euclidean metric. The square of a differential length, ds*ds, is given by the bilinear product of the coordinate differentials, dx^i, with the metric tensor.
This symbol takes 3 arguments: a tensor, a basis, and a tuple of contravariant and/or covariant indexes. It returns the indexed tensor component in the given basis.
This symbol is an n-ary symbol, returning an n-tuple of the arguments. The number of arguments, n, is a non-negative integer. The elements of the n-tuple are ordered as the arguments are ordered. Elements of a tuple may have the same type and value as each other, or not. An n-tuple, unlike a list, is generally not mutable.
This symbol takes 2 arguments, a tuple and a natural number index, and returns the tuple component indicated by the index value.
partial(unit_Cartesian(i), Cartesian(j)) = 0
scalar_product(unit_Cartesian(i), unit_Cartesian(j)) = Kronecker_tensor(i,j)
tuple(e_x, e_y, e_z) = tuple(unit_Cartesian(1), unit_Cartesian(2), unit_Cartesian(3))
This symbol takes one argument, a natural number, and returns the Cartesian basis element, of a right handed Cartesian coordinate frame, corresponding to the value of the argument. The unit_Cartesian basis elements are each constant with respect to position in the space and define an orthonormal vector space basis.
This CD holds the definitions of many transcendental functions. They are defined as in Abromowitz and Stegun (ninth printing on), with precise reductions to logs in the case of inverse functions. Note that, if signed zeros are supported, some strict inequalities have to become weak . It is intended to be `compatible' with the MathML elements denoting trancendental functions. Some additional functions are in the CD transc2.
This symbol represents the arccos function. This is the inverse of the cos function as described in Abramowitz and Stegun, section 4.4. It takes one argument.
This symbol represents the arccosh function as described in Abramowitz and Stegun, section 4.6.
This symbol represents the arccot function as described in Abramowitz and Stegun, section 4.4.
for all z | if z is not zero then arccoth(z) = i * arccot(i * z)
This symbol represents the arccoth function as described in Abramowitz and Stegun, section 4.6.
arccsc(z) = -i ln(i/z + \sqrt(1 - 1/z^2))
This symbol represents the arccsc function as described in Abramowitz and Stegun, section 4.4.
This symbol represents the arccsch function as described in Abramowitz and Stegun, section 4.6.
This symbol represents the arcsec function as described in Abramowitz and Stegun, section 4.4.
This symbol represents the arcsech function as described in Abramowitz and Stegun, section 4.6.
x in [-(pi/2),(pi/2)] implies arcsin(sin x) = x
This symbol represents the arcsin function. This is the inverse of the sin function as described in Abramowitz and Stegun, section 4.4. It takes one argument.
This symbol represents the arcsinh function as described in Abramowitz and Stegun, section 4.6.
x in (-(pi/2),(pi/2)) implies arctan(tan x) = x
This symbol represents the arctan function. This is the inverse of the tan function as described in Abramowitz and Stegun, section 4.4. It takes one argument.
This symbol represents the arctanh function as described in Abramowitz and Stegun, section 4.6.
This symbol represents the cos function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the cosh function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
This symbol represents the cot function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the coth function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
This symbol represents the csc function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the csch function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
for all k if k is an integer then e^(z+2*pi*k*i)=e^z
This symbol represents the exponentiation function as described in Abramowitz and Stegun, section 4.2. It takes one argument.
This symbol represents the ln function (natural logarithm) as described in Abramowitz and Stegun, section 4.1. It takes one argument. Note the description in the CMP/FMP of the branch cut. If signed zeros are in use, the inequality needs to be non-strict.
This symbol represents a binary log function; the first argument is the base, to which the second argument is log'ed. It is defined in Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1
This symbol represents the sec function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the sech function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
This symbol represents the sin function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the sinh function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
This symbol represents the tan function as described in Abramowitz and Stegun, section 4.3. It takes one argument.
This symbol represents the tanh function as described in Abramowitz and Stegun, section 4.5. It takes one argument.
This CD holds the definition of a two-argument version of arctan, useful for defining the argument of a complex number, and equivalent to Fortran's ATAN2 function. It also holds a definition of the unwinding number, useful for writing correct relationships between elementary functions.
$Re(y) < 0 \implies Re(arctan(y,x)) < 0$.
$Re(y)=0 and Re(x) < 0 \implies Re(arctan(y,x))=\pi$.
$Re(y)=0 and Re(x)>0 \implies Re(arctan(y,x))=0$.
$x,y \in {\bf R} \implies \pi < arctan(y,x)\le\pi$.
This symbol represents the two-argument arctan function as in Fortran's ATAN2. arctan(y,x) is a value of arctan(y/x). For real x,y arctan(y,x) is positive when y is positive, negative when y is negative. If y is zero, the result is 0 if x is positive, and $\pi$ if x is negative. If x is zero, the result has absolute value $\pi/2$.
The unwinding number denotes the extent to which $z=\ln\exp z$ is not true. It was orignally defined in Corless,R.M. & Jeffrey,D.J., The Unwinding Number. SIGSAM Bulletin 30(1996) 2, pp. 28-35. However, we take the definition (which has a change of sign) from Corless,R.M., Davenport,J.H., Jeffrey,D.J. & Watt,S.M., According to Abramowitz and Stegun. SIGSAM Bulletin 34(2000) 2, pp. 58--65. Note that the symbol is normally denoted by ${\cal K}$.
This CD holds the definitions of many transcendental and related functions. They are defined as multi-valued functions with precise reductions to logs in the case of inverse functions. Note that we use the same names as in the single-valued case, even though it would be traditional to render them with capital letters. In sum <OMS cd="transc3" name="ln"/> is multi-valued, while <OMS cd="transc1" name="ln"/> is single-valued. Note that in many cases A+S only states the log restrictions under some circumstances: JHD has proved (22.8.2002) all the inverse trig. ones
arccos(z) = -i ln(z+i \sqrt(1-z^2)), so the multi-valued equivalent is Arccos(z) = -i Ln(z+i \Sqrt(1-z^2)), encoded as Arccos(z) = -i(ln(z+i \sqrt(1-z^2)) union ln(z-i \sqrt(1-z^2)))
This symbol represents the arccos function. This is the multivalued inverse of the cos function.
Only stated in A+S for \z^2|\le 1, but proved for all z in JHD's OpenMath deliverable.
A+S says +/- i ..., but this is irrelevant since Arccos(iz)=-Arccos(iz)
arccot(z) = (i/2)ln((1+iz)/(1-iz)), so the multi-valued equivalent is Arccot(z) = (i/2)Ln((1+iz)/(1-iz)),
This symbol represents the multi-valued arccot function as the inverse of cot
for all x arccoth(x) = 1/2 * ln((x + 1)/(x - 1))
The condition 0\le x^2 < 1 in A+S is not necessary The proof for Arctan is in JHD's OpenMath deliverable
arccsc(z) = -i ln (sqrt(1-1/z^2)+i/z), but the multivalued equivalent is Arccsc(z) = -i Ln (Sqrt(1-1/z^2)+i/z), which we translate into OpenMath as Arccsc(z) = -i [ Ln (sqrt(1-1/z^2)+i/z) union Ln (-sqrt(1-1/z^2)+i/z),
This symbol represents the multivalued arccsc function as the inverse of csc.
arcsec(z) = -i ln(1/z+i \sqrt(1-1/z^2)), so the multi-valued equivalent is Arcsec(z) = -i Ln(1/z+i \Sqrt(1-1/z^2)), encoded as Arcsec(z) = -i(ln(1/z+i \sqrt(1-1/z^2)) union ln(1/z-i \sqrt(1-1/z^2)))
This symbol represents the multivalued arcsec function as the inverse of sec.
A+S says +/- i ..., but this is irrelevant since Arcsec(iz)=-Arcsec(iz)
arcsin(z) = -i ln (sqrt(1-z^2)+iz), but the multivalued equivalent is Arcsin(z) = -i Ln (Sqrt(1-z^2)+iz), which we translate into OpenMath as Arcsin(z) = -i [ Ln (sqrt(1-z^2)+iz) union Ln (-sqrt(1-z^2)+iz)],
This symbol represents the arcsin function. This is the multi-valued inverse of the sin function as described in Abramowitz and Stegun, section 4.4. It takes one argument.
arctan(z) = (i/2)ln((1-iz)/(1+iz)), so the multi-valued equivalent is Arctan(z) = (i/2)Ln((1-iz)/(1+iz)),
This symbol represents the arctan function. This is the multi-valued inverse of the tan function.
for all x arctanh(x) = 1/2 * ln((1 + x)/(1 - x))
This symbol represents the ln function (natural logarithm) as a multivalued function.
log 100 to base 10 (which is {2+2n\pi i}).
Type Sorts as used in the Calculus of Constructions and in its Extensions. Initial version: O. Caprotti
Definition of type constant for Propositions and Sets
The cumulative type of the type of sets in a hierarchy of types.
The type of sets in a hierarchy of types.
This CD defines symbols for the IEC binary prefixes to indicate unit multiplication by a power of 2.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^60$. The full technical name is exabinary.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^30$. The full technical name is gigabinary.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^10$. The full technical name is kilobinary.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^20$. The full technical name is megabinary.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^50$. The full technical name is petabinary.
This symbol represents the fact that the subsequent unit has been effectively multiplied by $2^40$. The full technical name is terabinary.
This CD defines symbols to represent imperial standard measures.
This symbol represents the measure of one acre. This is a standard imperial measure for area.
This symbol represents the measure of one bar. This is the standard imperial measure for pressure.
1 degree Fahrenheit = 0.5556*(1-32) degrees Celsius
This symbol represents the measure of one degree Fahrenheit. This is the standard imperial measure for temperature.
This symbol represents the measure of one foot. This is the standard imperial measure for distance.
This symbol represents the measure of one (land, or statute) mile. This is a standard imperial measure for distance, defined in terms of the foot.
This symbol represents the measure of one mile per hour. This is a standard imperial measure for speed.
1 miles_per_hr_sqrd = 1 mile_per_hr (change) in 1 hour
This symbol represents the measure of one mile per hour squared. This is a standard imperial measure for acceleration.
This symbol represents the measure of one (imperial) pint. This is the standard imperial measure for volume. See units_us1 for the U.S. pint.
This symbol represents the measure of force of one pound.
This symbol represents the measure of the mass which weighs one pound under the influence of standard gravity.
This symbol represents the measure of one yard. This is a standard imperial measure for distance, defined in terms of the foot.
This CD defines symbols to represent the basic physical units in the SI (syst\'eme international) system of units. It should probably be renamed units_si.
This symbol represents the measure of one Coulomb. This is the standard SI measure for charge.
This symbol represents the measure of one Joule. This is the standard SI measure for energy.
This symbol represents the measure of one Newton. This is the standard SI measure for force.
This symbol represents the measure of one Newton per square metre. This is another (deprecated in OpenMath) name for the standard SI measure for pressure, the Pascal.
This symbol represents the measure of one Newton per square metre. This is the standard SI measure for pressure.
This symbol represents the measure of one Watt. This is the standard SI measure for power.
This symbol represents the measure of one amp. This is the standard SI measure for current.
This symbol represents the measure of one degree Celsius. This is a standard metric measure for temperature.
This symbol represents the measure of one degree Kelvin. This is a standard SI measure for temperature relative to absolute zero.
This symbol represents the measure of one gramme. This is not quite the standard SI measure for mass, which is the kilogramme, but OpenMath chooses to regard the gramme as standard, otherwise one would have to call it the milli-kilogramme.
A litre is, since 1964, a cubic decimetre, or a thousandth of a cubic metre, as the FMP below states.
This symbol represents the measure of one litre. This is a standard metric measure for physical volume.
A lire is, since 1901 and until 1964, the volume occupied by a kilogramme of water at maximum density and standard pressure. The difference is about 0.0028%.
This symbol represents the previous (1901-1964) measure of one litre. This used to be a standard metric measure for physical volume.
This symbol represents the measure of one metre. This is the standard SI unit measure for physical distance.
This symbol represents the measure of one metre squared. This is the standard SI measure for physical area.
This symbol represents the measure of one metre per second. This is the standard SI measure for speed.
This symbol represents the measure of one metre per second squared. This is the standard SI measure for acceleration.
The Si unit is the same as the UTC unit, to which we refer
This symbol represents the measure of one second. This is the standard SI measure for time.
This symbol represents the measure of one volt. This is the standard SI measure for voltage.
This CD defines various symbols for use in the manipulation of units.
This symbol represents the fact that the subsequent unit has been effectively multiplied by 1,000 ($10^{3}$)
This CD defines symbols for the SI prefixes to indicate multiplication by a power of 10.
This is unit multiplication by $10^-18$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-18$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $0.01$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $0.1$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^18$
This is unit multiplication by $10^-15$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-15$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^9$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $100$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $1000$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^6$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-6$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $0.001$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-9$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^15$
This is unit multiplication by $10^-12$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-12$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^12$
This is unit multiplication by $10^-24$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-24$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^24$
This is unit multiplication by $10^-21$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^-21$
This symbol represents the fact that the subsequent unit has been effectively multiplied by $10^21$
This CD holds the units and dimension symbols used by the OpenMath Small Type System, when handling units and dimensions.
The type of all unit prefixes, such as "kilo".
This CD defines symbols to represent the basic physical units of time in the SI (syst\'eme international) system of units. and therefore most other modern systems such as "Imperial" and "U.S.".
This symbol represents the measure of one month of (calendar) time.
This symbol represents the measure of one year of (calendar) time.
This symbol represents the measure of one day of time. The definitions below ignore the possibilities of "leap seconds".
This symbol represents the measure of one hour of time.
This symbol represents the measure of one minute of time.
This symbol represents the measure of one second of time. This is the standard SI unit measure for time.
This symbol represents the measure of one week of time.
This CD defines symbols to represent U.S. customary unit measures.
1 U.S. Survey acre = 4840 square U.S. Survey yards
This symbol represents the measure of one U.S. Survey acre.
This symbol represents the measure of one U.S. Survey foot.
1 U.S. Survey mile = 5280 U.S. Survey feet
This symbol represents the measure of one U.S. Survey mile.
This symbol represents the measure of one U.S. dry pint.
This symbol represents the measure of one U.S. liquid pint.
This symbol represents the measure of one U.S. Survey yard.
This CD contains symbols to represent functions which are concerned with vector calculus.
laplacian(F) = \partial^2(F)/\partial(x_1)^2 + ... + \partial^2(F)/\partial(x_n)^2
This symbol is used to represent the laplacian function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a vector of functions. It should satisfy the defining relation: laplacian(F) = \partial^2(F)/\partial(x_1)^2 + ... + \partial^2(F)/\partial(x_n)^2
curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z)
This symbol is used to represent the curl function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a vector of functions. It should satisfy the defining relation: curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z) where i,j,k are the unit vectors corresponding to the x,y,z axes respectively and the multiplication X is cross multiplication.
divergence(F) = \partial(F_(x_1))/\partial(x_1) + ... + \partial(F_(x_n))/\partial(x_n)
This symbol is used to represent the divergence function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a scalar value. It should satisfy the defining relation: divergence(F) = \partial(F_(x_1))/\partial(x_1) + ... + \partial(F_(x_n))/\partial(x_n)
grad(F) = (\partial(F)/\partial(x_1), ... ,\partial(F)/partial(x_n))
This symbol is used to represent the grad function. It takes one argument which should be a scalar valued function and returns a vector of functions. It should satisfy the defining relation: grad(F) = (\partial(F)/\partial(x_1), ... ,\partial(F)/partial(x_n))
This CD defines elements of the ring of differential operators with coefficients in the polynomial ring.
$ x^{m} \partial_{x}^{n} \partial_{y}^{r} \cdot f = x^{m} \frac{partial^{n+r} f}{\partial x^{n} \partial y^{r}} $
action of a differential operator to a function.
action of a polynomial as a differential operator to a function. act_of_poly is equivalent to the composition of act and diffop.
Differentiation of a given function in one variable.
constructor of a differential operator from a polynomial or from an element of the finitely generated free algebra. The inverse of gr.
the symbol polynomial of a given differential operator. The inverse of diffop.
partial differentiation of a given function.