MathML Element Reference

This section provides an element-by-element reference for how to create MathML expressions in Zed, editing conventions for each element, and support notes for how you will create each element type using the editor.


Token Elements
Basic Content Elements
Arithmetic: Part I
Arithmetic: Part II
Algebra
Logic
Relations
Calculus
Sets
Sequences and Series
Exponential Functions
Trigonometric Functions
Hyperbolic Functions
Statistics
Linear Algebra
Semantic Elements
Constant Elements

The following subsections explain how Zed supports each of the MathML content elements. The subsections are arranged in roughly the same order as those in Section 4.4 of the MathML 2.0 Recommendation.

Many of the descriptions of the content elements include links to one or more examples that were created using the editor. Clicking on these links will allow you to view the example in your web browser while reading this Users Guide, so you can try out the instructions for the editor as you read them.


Token Elements

<cn>
<ci>
<csymbol>

<cn> (#PCDATA | <sep> | presentation)* [C]
the content number token element
Example: cn.mml
See also:  <sep>

A <cn> element is created whenever a numeric character is typed into a placeholder element. So there are no templates, menu items, or palette entries for creating <cn> elements in isolation.

Special care must be taken in handling <cn> elements using the base or type attribute. The values of these attributes may be supplied using the general attribute entry support, however, many values for the type attribute depend on the <sep> element to divide the character data for the <cn> element into separate parts. To enter such an element, first enter the character data for each of the separated parts all run together into one <cn> element, then go back and insert the necessary <sep> elements using the # key, from back to front. The character data after the <sep> element will seem to disappear, but supply the desired value of the type attribute and the character data will reappear in its proper position.


<ci> (#PCDATA | presentation)* [C]
the content identifier token element

A <ci> element is created whenever an alphabetic character is typed into a placeholder element. So there are no templates, menu items, or palette entries for creating <ci> elements in isolation.

The general attribute entry support may be used to supply the value for the type attribute. The default configuration provides a special layout transformation for <ci> elements with type="vector"; others may be supplied using the layout rules configuration dialog.


<csymbol> (#PCDATA | presentation)* [2.0] [C]
the content symbol token element

Zed does not support editing <csymbol> elements, although they may be entered as MathML source.


Basic Content Elements

<apply>
<reln>
<fn>
<interval>
<inverse>
<sep>
<condition>
<declare>
<lambda>
<compose>
<ident>
<domain>
<codomain>
<image>
<domainofapplication>
<piecewise>
<piece>
<otherwise>

<apply> (op, (arg)*) [C]
the function application constructor element
Menu:  Basic→Function→apply
Palette:  Basic (1 1)
Template:  apply
Template:  [[]
Template:  []]
Example: apply.mml

Most instances of the <apply> constructor element are constructed as needed upon the application of operators and other templates that use them. However, the apply template, palette, and menu items may be used to construct references to general functions, particularly those not predefined as being represented by other elements. In addition, after entering the name of a function, the [ key may be used as an accelerator for the apply template. The apply template encloses the current expression in a new instance of an <apply> element, placing the expression as the function being applied, and creates a new placeholder for entering a first argument to the new function. After entering the argument list for the new function, the ] key may be used to navigate out to the newly created function expression to continue input.

The <apply> element is treated as an nary operator requiring at least two arguments, the function and an argument. In the absence of other presentation rules associated with the function being applied, the function is presented as a prefix argument, and the arguments to the function are presented in parenthesis, separated by commas.

In a postfix input context, the [ key invokes the <apply> template. The ] key navigates out to the next enclosing instance of the <apply> element used to construct a reference to a general function.


<reln> (op, (arg)*) [1.01] [C]
the relation application constructor element
See also:  <apply>

The <reln> constructor element has been superceded by the <apply> element. Zed does not support editing <reln> elements.


<fn> (expr) [1.01] [C]
the general function constructor element
Menu:  Basic→Function→fn
Template:  fn
Example: fn.mml
See also:  <apply>

The fn palette and menu items each enclose the current expression with a new instance of the <fn> constructor element.

The <fn> element has been deprecated as obsolete. Zed supports creating <fn> elements, which are presented by the presentation of their single child element. Files containing <fn> elements can be saved to a file or to the clipboard, but when these files are read in, the <fn> elements are removed on input.


<interval> ((left, right) | <condition>) [C]
the numeric interval constructor element
Menu:  Basic→Interval→(...)
Menu:  Basic→Interval→[...]
Menu:  Basic→Interval→(...]
Menu:  Basic→Interval→[...)
Menu:  Basic→Interval→interval
Menu:  Basic→Interval→no closure
Palette:  Basic (2 1)
Template:  interval
Template:  open
Template:  closed
Template:  open-closed
Template:  closed-open
Template:  noclosure
Example: interval.mml
See also:  <condition><int>

The interval template, palette, and menu item each enclose the current expression with a new instance of the <interval> constructor element. The enclosed expression becomes the left endpoint of the interval, and a placeholder provides a place for entering the right endpoint.

Additional templates and menu items are provided for specifying the value of the closure attribute, or for removing the attribute altogether. The general attribute entry support may also be used to supply the value for the closure attribute.

The <interval> element may appear as a child element of the <int> element. In this case, the <interval> element should appear as the lower limit of integration of a three argument <int> element.

The <interval> element is a binary operator, and is presented as a comma separated list of its arguments, enclosed in parentheses or square brackets as required by the closure attribute.

Zed does not support editing <interval> elements involving <condition> elements.


<inverse/> () [C]
the functional inverse operator
Menu:  Basic→Function→inverse
Palette:  Basic (2 2)
Template:  inverse
Example: inverse.mml
See also:  <ident><compose>

The inverse template, palette, and menu item each enclose the current expression with a new application of the <inverse> operator. The enclosed expression becomes the function being inverted.

The <inverse> element is a unary operator, and is presented as a postfix application of a superscript of -1.


<sep/> () [C]
the content number component separator empty element
Template:  [#]
See also:  <cn>

The <sep> element only appears as a child element of the <cn> element. There are no templates, menu items, or palette entries for creating <sep> elements in isolation; the keyboard accelerator # can be used to insert a <sep> element within a <cn> element.


<condition> (<apply> | <reln>) [C]
the general propositional qualifier element
Menu:  Basic→Other→condition
Template:  condition
Example: condition.mml
See also:   <interval> <list> <set> <exists> <forall> <int> <limit> <max> <min> <product> <sum>

The <condition> element is usually found as a qualifier element on other elements, providing a range for an associated bound variable.

Zed supports creating <condition> elements, which are presented by the presentation of their single child element. However, Zed does not support editing <condition> elements as qualifier elements on other elements.


<declare> (<ci>, (value)?) [C]
the symbol type/value declaration element

Zed does not support editing <declare> elements, although they may be entered as MathML source. Zed does not present <declare> elements in a visible way.


<lambda> ((<bvar>)*, body) [C]
the lambda expression function constructor element
Menu:  Basic→Function→lambda
Palette:  Basic (3 1)
Template:  lambda
Template:  lambda2
Example: lambda.mml
See also:  <bvar>

The lambda template, palette, and menu item each enclose the current expression with a new application of the <lambda> constructor. The enclosed expression becomes the body of the expression.

An additional template is provided to create <lambda> elements with additional qualifiers. The bound variables can be created by starting with the lambda2 named template.

The <lambda> element accepts from one to two arguments. The one argument version is presented as a lambda expression with no bound variables. The two argument version presents the lambda expression with its second argument as a list of bound variables, enclosed in parentheses.

Special input conventions are needed to enter the bound variables to the lambda expression. These conventions are borrowed from those used to create and remove elements of other nary operators.

The usual operations on nary operators can be used to insert or remove arguments of the <lambda> element. Creating the first argument follows the usual conventions for nary operators, but the second argument, containing the list of bound variables, requires special treatment.

When entering the list of bound variables, the list of variables can be viewed as its own element containing a list of arguments. So at this level of the expression, the usual operations on nary operators can be used to insert and remove additional bound variables.

In the content MathML generated by the <lambda> element, the second argument produces <bvar> qualifier elements for each of bound variable. These elements are generated as needed by the means used to create the <lambda> element.


<compose/> () [C]
the functional composition operator
Menu:  Basic→Function→compose
Palette:  Basic (3 2)
Template:  compose
Example: compose.mml
See also:  <ident><inverse>

The compose template, palette, and menu items each enclose the current expression with a new application of the <compose> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <compose> element is an nary operator and an associative operator requiring at least two arguments, and is presented as an infix operator. A small circle symbol is used to present the operator.


<ident/> () [C]
the functional identity constant symbol
Menu:  Basic→Function→ident
Palette:  Basic (1 2)
Template:  ident
Example: ident.mml
See also:  <inverse><compose>

The template, palette, and menu item each insert the empty constant element at the current cursor position.

The element is presented by the number "1".


<domain/> () [2.0] [C]
the functional domain operator
Menu:  Basic→Function→domain
Palette:  Basic (1 3)
Template:  domain
Example: domain.mml
See also:  <codomain><image>

The domain template, palette, and menu item each enclose the current expression with a new application of the <domain> operator. The enclosed expression becomes the argument of the function.

The <domain> element is a unary operator, and is presented as a prefix application of the string "domain".


<codomain/> () [2.0] [C]
the functional codomain (range) operator
Menu:  Basic→Function→codomain
Palette:  Basic (2 3)
Template:  codomain
Example: codomain.mml
See also:  <domain><image>

The codomain template, palette, and menu item each enclose the current expression with a new application of the <codomain> operator. The enclosed expression becomes the argument of the function.

The <codomain> element is a unary operator, and is presented as a prefix application of the string "codomain".


<image/> () [2.0] [C]
the functional image operator
Menu:  Basic→Function→image
Palette:  Basic (3 3)
Template:  image
Example: image.mml
See also:  <domain><codomain>

The image template, palette, and menu item each enclose the current expression with a new application of the <image> operator. The enclosed expression becomes the argument of the function.

The <image> element is a unary operator, and is presented as a prefix application of the string "image".


<domainofapplication> (expr) [2.0] [C]
the domain of application qualifier element
Menu:  Basic→Other→domain of application
Template:  domainofapplication
Example: domainofapplication.mml
See also:  <int>

The <domainofapplication> element typically appears as a child element of the <int> element. The domainofapplication template and menu item each act to wrap the current expression with a new <domainofapplication> element, which should appear as the lower limit of integration of a three argument <int> element.

To create an integral having only the integrand and the domain of integration as arguments, use the int3 template to create a three argument <int> element, create the lower limit of integration, and use the domainofapplication template to enclose the lower limit with a <domainofapplication> element. The presentation of the domain of integration will change to reflect the fact that the integration variable is left unspecified.


<piecewise> ((<piece>)*, (<otherwise>)?) [2.0] [C]
the piecewise function constructor element
Menu:  Basic→Piecewise→piecewise
Palette:  Basic (1 4)
Template:  piecewise
Example: piecewise.mml
See also:  <piece><otherwise>

The piecewise template, palette, and menu item each enclose the current expression with a new <piecewise> constructor element. The enclosed expression becomes the first piece.

The <piecewise> element is an nary operator, and is presented as a vertical list of its pieces, preceded by a curly brace. The various child elements of each piece of the <piecewise> element are left aligned using <maligngroup> elements in the presentation MathML.


<piece> (value, condition) [2.0] [C]
the piecewise component function constructor element
Menu:  Basic→Piecewise→piece
Palette:  Basic (2 4)
Template:  piece
Example: piece.mml
See also:  <piecewise><otherwise>

The piece template, palette, and menu item each enclose the current expression with a new <piece> constructor element. The enclosed expression becomes the value conditionally supplied by the piece, and a new placeholder is created to hold the condition.

The <piece> element takes two child elements, and is presented as an infix application of the string "if".


<otherwise> (value) [2.0] [C]
the piecewise default function constructor element
Menu:  Basic→Piecewise→otherwise
Palette:  Basic (3 4)
Template:  otherwise
Example: otherwise.mml
See also:  <piecewise><piece>

The otherwise template, palette, and menu item each enclose the current expression with a new <otherwise> constructor element. The enclosed expression becomes the value used when no other piece applies.

The <otherwise> element takes one child element, and is presented as a postfix application of the string "otherwise".


Arithmetic: Part I

<plus>
<minus>
<times>
<divide>
<power>
<root>

<plus/> () [C]
the arithmetic addition operator
Menu:  Arithmetic→Plus→+ x
Menu:  Arithmetic→Plus→x + y
Palette:  Arithmetic (1 1)
Palette:  Arithmetic (1 2)
Template:  [+]
Template:  [Ctrl++]
Example: plus.mml
See also:  <minus><times><divide>

The plus templates, palette, and menu items each enclose the current expression with a new application of the <plus> operator. The enclosed expression becomes the first argument of the operator. The palette and menu items for binary plus create an additional placeholder for entering a second argument.

The <plus> element is an nary operator and an associative operator, and is presented as an infix application of the "+" operator.

On input, the <plus> template is treated as a binary operator. Using the Ctrl key allows the user to create the <plus> element as a unary operator.


<minus/> () [C]
the arithmetic subtraction (negation) operator
Menu:  Arithmetic→Plus→- x
Menu:  Arithmetic→Plus→x - y
Palette:  Arithmetic (2 1)
Palette:  Arithmetic (2 2)
Template:  [-]
Template:  [Ctrl+-]
Example: minus.mml
See also:  <plus><times><divide>

The minus templates, palette, and menu items each enclose the current expression with a new application of the <minus> operator. The enclosed expression becomes the first argument of the operator. The palette and menu items for binary minus create an additional placeholder for entering a second argument.

The <minus> element is overloaded: as a unary operator it is presented in prefix form, and with two or more arguments it is presented in infix form as an nary operator.

The <minus> element is also overloaded on input: in a prefix input context, it is treated as a unary operator, while in a postfix input context, it is treated as a binary operator. Using the Ctrl key reverses the assignment so that one can obtain either template in any input context.


<times/> () [C]
the arithmetic multiplication operator
Menu:  Arithmetic→Times→x * y
Palette:  Arithmetic (3 1)
Template:  [*]
Template:  [.]
Example: times.mml
See also:  <plus><minus><divide>

The times template, palette, and menu items each enclose the current expression with a new application of the <times> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <times> element is an nary operator and an associative operator requiring at least two arguments, and is presented as an infix operator. An invisible times symbol is used to present the operator.


<divide/> () [C]
the arithmetic division operator
Menu:  Arithmetic→Times→x / y
Palette:  Arithmetic (4 1)
Template:  [/]
Example: divide.mml
See also:  <plus><minus><times>

The divide template, palette, and menu items each enclose the current expression with a new application of the <divide> operator. The enclosed expression becomes the numerator of the fraction, and a placeholder provides a place for entering the denominator.

The <divide> element is presented as an upright fraction.


<power/> () [C]
the elementary general exponentiation function
Menu:  Arithmetic→Power→x ^ y
Palette:  Arithmetic (5 2)
Template:  [^]
Example: power.mml
See also:  <root>

The power template, palette, and menu items each enclose the current expression with a new application of the <power> operator. The enclosed expression becomes the base of the expression, and a placeholder provides a place for entering the exponent.

The <power> element is presented by placing the exponent as a superscript of the base.


<root/> () [C]
the general algebraic root function
Menu:  Arithmetic→Power→sqrt
Menu:  Arithmetic→Power→root
Palette:  Arithmetic (3 2)
Palette:  Arithmetic (4 2)
Template:  [Ctrl+`]
Template:  [`]
Example: sqrt.mml
Example: root.mml
See also:  <power><degree>

The sqrt template, palette, and menu items each enclose the current expression with a new application of the <root> operator. The enclosed expression becomes the argument of the expression.

The <root> template, palette, and menu items each enclose the current expression with a new application of the <root> operator. The enclosed expression becomes the argument of the expression, and and a placeholder provides a place for entering the degree of the root.

The <root> element accepts one or two arguments. The usual operations on nary operators can be used to insert or remove arguments of the <root> element. The one argument version is presented with the radical sign enclosing the argument. The two argument version is presented as the one argument version, but with the second argument presented as the degree of the root as a preceding superscript of the operator.

In the content MathML generated by the <root> element, the second argument produces a <degree> qualifier element, generated as needed by the means used to create the <root> element.


Arithmetic: Part II

<factorial>
<quotient>
<rem>
<gcd>
<lcm>
<max>
<min>
<floor>
<ceiling>

<factorial/> () [C]
the arithmetic factorial function
Menu:  Arithmetic→Other→factorial
Palette:  Arithmetic[2] (1 1)
Template:  [!]
Template:  factorial
Example: factorial.mml

The factorial template, palette, and menu item each enclose the current expression with a new application of the <factorial> operator. The enclosed expression becomes the argument of the function.

The <factorial> element is a unary operator, and is presented as a postfix application of the "!" operator.


<quotient/> () [C]
the integer quotient function
Menu:  Arithmetic→Other→quotient
Palette:  Arithmetic[2] (2 2)
Template:  quotient
Example: quotient.mml
See also:  <rem>

The quotient template, palette, and menu item each enclose the current expression with a new application of the <quotient> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <quotient> element is a binary operator, and is presented as a comma separated list of its arguments, enclosed in parentheses, preceded by the string "quo" as a prefix operator.


<rem/> () [C]
the integer remainder function
Menu:  Arithmetic→Other→rem
Palette:  Arithmetic[2] (3 2)
Template:  rem
Example: rem.mml
See also:  <quotient>

The rem template, palette, and menu item each enclose the current expression with a new application of the <rem> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <rem> element is a binary operator, and is presented as a comma separated list of its arguments, enclosed in parentheses, preceded by the string "rem" as a prefix operator.


<gcd/> () [C]
the arithmetic greatest common divisor function
Menu:  Arithmetic→Other→gcd
Palette:  Arithmetic[2] (2 1)
Template:  gcd
Example: gcd.mml
See also:  <lcm>

The gcd template, palette, and menu item each enclose the current expression with a new application of the <gcd> element. The enclosed expression becomes the first element of the set.

The <gcd> element is an nary operator, and is presented as a comma separated list of its child elements, enclosed in parentheses, preceded by the string "gcd" as a prefix operator.


<lcm/> () [2.0] [C]
the arithmetic least common multiple function
Menu:  Arithmetic→Other→lcm
Palette:  Arithmetic[2] (3 1)
Template:  lcm
Example: lcm.mml
See also:  <gcd>

The lcm template, palette, and menu item each enclose the current expression with a new application of the <lcm> element. The enclosed expression becomes the first element of the set.

The <lcm> element is an nary operator, and is presented as a comma separated list of its child elements, enclosed in parentheses, preceded by the string "lcm" as a prefix operator.


<max/> () [C]
the arithmetic maximum function
Menu:  Arithmetic→Other→max
Palette:  Arithmetic[2] (4 1)
Template:  max
Example: max.mml
See also:  <min><condition>

The max template, palette, and menu item each enclose the current expression with a new application of the <max> element. The enclosed expression becomes the first element of the set.

The <max> element is an nary operator, and is presented as a comma separated list of its child elements, enclosed in curly braces, preceded by the string "max" as a prefix operator.

Zed does not support editing <max> elements involving <condition> elements.


<min/> () [C]
the arithmetic minimum function
Menu:  Arithmetic→Other→min
Palette:  Arithmetic[2] (5 1)
Template:  min
Example: min.mml
See also:  <max><condition>

The min template, palette, and menu item each enclose the current expression with a new application of the <min> element. The enclosed expression becomes the first element of the set.

The <min> element is an nary operator, and is presented as a comma separated list of its child elements, enclosed in curly braces, preceded by the string "min" as a prefix operator.

Zed does not support editing <min> elements involving <condition> elements.


<floor/> () [2.0] [C]
the arithmetic integer floor function
Menu:  Arithmetic→Other→floor
Palette:  Arithmetic[2] (4 2)
Template:  floor
Example: floor.mml
See also:  <ceiling>

The floor template, palette, and menu item each enclose the current expression with a new application of the <floor> operator. The enclosed expression becomes the argument of the function.

The <floor> element is a unary operator, and is presented by enclosing its argument in floor fences.


<ceiling/> () [2.0] [C]
the arithmetic integer ceiling function
Menu:  Arithmetic→Other→ceiling
Palette:  Arithmetic[2] (5 2)
Template:  ceiling
Example: ceiling.mml
See also:  <floor>

The ceiling template, palette, and menu item each enclose the current expression with a new application of the <ceiling> operator. The enclosed expression becomes the argument of the function.

The <ceiling> element is a unary operator, and is presented by enclosing its argument in ceiling fences.


Algebra

<abs>
<arg>
<real>
<imaginary>
<conjugate>

<abs/> () [C]
the absolute value function
Menu:  Algebra→abs
Palette:  Algebra (1 1)
Palette:  Arithmetic[2] (1 2)
Template:  abs
Example: abs.mml
See also:  <arg>

The abs template, palette, and menu item each enclose the current expression with a new application of the <abs> operator. The enclosed expression becomes the argument of the function.

The <abs> element is a unary operator, and is presented by enclosing its argument in vertical bars.


<arg/> () [2.0] [C]
the complex argument function
Menu:  Algebra→arg
Palette:  Algebra (1 2)
Template:  arg
Example: arg.mml
See also:  <abs>

The arg template, palette, and menu item each enclose the current expression with a new application of the <arg> operator. The enclosed expression becomes the argument of the function.

The <arg> element is a unary operator, and is presented as a prefix application of the string "arg".


<real/> () [2.0] [C]
the complex real part function
Menu:  Algebra→real
Palette:  Algebra (1 3)
Template:  real
Example: real.mml
See also:  <imaginary>

The real template, palette, and menu item each enclose the current expression with a new application of the <real> operator. The enclosed expression becomes the argument of the function.

The <real> element is a unary operator, and is presented as a prefix application of the Fraktur capital "R".


<imaginary/> () [2.0] [C]
the complex imaginary part function
Menu:  Algebra→imaginary
Palette:  Algebra (1 4)
Template:  imaginary
Example: imaginary.mml
See also:  <real>

The imaginary template, palette, and menu item each enclose the current expression with a new application of the <imaginary> operator. The enclosed expression becomes the argument of the function.

The <imaginary> element is a unary operator, and is presented as a prefix application of the Fraktur capital "I".


<conjugate/> () [C]
the complex conjugate function
Menu:  Algebra→conjugate
Palette:  Algebra (1 5)
Template:  conjugate
Example: conjugate.mml

The conjugate template, palette, and menu item each enclose the current expression with a new application of the <conjugate> operator. The enclosed expression becomes the argument of the function.

The <conjugate> element is a unary operator, and is presented by a horizontal bar over the argument.


Logic

<and>
<or>
<xor>
<not>
<implies>
<forall>
<exists>

<and/> () [C]
the logical conjunction operator
Menu:  Logic→and
Palette:  Logic (1 1)
Template:  and
Template:  [&]
Example: and.mml
See also:  <or><xor><not>

The and template, palette, and menu item each enclose the current expression with a new application of the <and> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <and> element is an nary operator and an associative operator requiring at least two arguments, and is presented as an infix operator. The upwards "V" symbol is used to present the operator.


<or/> () [C]
the logical disjunction operator
Menu:  Logic→or
Palette:  Logic (1 2)
Template:  or
Template:  [|]
Example: or.mml
See also:  <and><xor><not>

The or template, palette, and menu item each enclose the current expression with a new application of the <or> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <or> element is an nary operator and an associative operator requiring at least two arguments, and is presented as an infix operator. The downwards "V" symbol is used to present the operator.


<xor/> () [C]
the logical exclusive or operator
Menu:  Logic→xor
Palette:  Logic (1 3)
Template:  xor
Example: xor.mml
See also:  <and><or><not>

The xor template, palette, and menu item each enclose the current expression with a new application of the <xor> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <xor> element is an nary operator and an associative operator requiring at least two arguments, and is presented as an infix operator. The circled plus symbol is used to present the operator.


<not/> () [C]
the logical negation operator
Menu:  Logic→not
Palette:  Logic (1 4)
Template:  not
Template:  [!]
Example: not.mml
See also:  <and><or><xor><not>

The not template, palette, and menu item each enclose the current expression with a new application of the <xor> operator. The enclosed expression becomes the argument of the operator.

The <not> element is a unary operator, and is presented as an prefix operator. The negation symbol is used to present the operator.


<implies/> () [C]
the logical implication relation
Menu:  Logic→implies
Palette:  Logic (1 5)
Template:  implies
Example: implies.mml

The implies template, palette, and menu item each enclose the current expression with a new application of the <implies> operator. The enclosed expression becomes the first argument of the operator, and a placeholder provides a place for entering a second argument.

The <implies> element is a binary operator, and is presented as an infix operator. The double right arrow symbol is used to present the operator.


<forall/> () [C]
the logical universal quantifier
Menu:  Logic→forall
Palette:  Logic (1 6)
Template:  forall
Template:  forall2
Example: forall.mml
See also:  <exists><condition>

The forall template, palette, and menu item each enclose the current expression with a new application of the <forall> operator. The enclosed expression becomes the body of the expression.

An additional template is provided to create <forall> elements with additional qualifiers. The bound variables can be created by starting with the forall2 named template.

The <forall> element accepts from one to two arguments. The one argument version is presented as a quantified expression with no bound variables. The two argument version presents the quantified expression with its second argument as a list of bound variables, enclosed in parentheses.

Special input conventions are needed to enter the bound variables to the quantified expression. These conventions are borrowed from those used to create and remove elements of other nary operators.

The usual operations on nary operators can be used to insert or remove