Iterators/Apply-qualifiers in MathML 2.0(content)

Hi all,

	I have one suggestion about the opportunity to qualify apply
in MathML.

Remark 1:
	First note that these qualifiers are used for different things:
- iterating an operation on an intentionaly defined set of objects (bvar,
   lowlimit, uplimit, condition and interval;
- defining the context of the operation (for degree -- only appliable
   for moment, and not to be misused for diff and partialdiff, -- or
   logbase -- only applyable to log -- as I understand them).
Maybe, distinguishing them could be useful.

Remark 2:
	Meanwhile, there is a need for a general "iterate" primitive
(maybe not the best name). Which iterate any operation on variables,
like in the way apply does it with qualifiers ( Such an operator
would have the advantage of caring of the iteration in place of the 
operator itself. As an example, it is perfectly legitimate to apply 
an iteration to:
- boolean and/or;
- arithmetic plus/times. There is a special sum/product couple just for
   this. But if you start refining plus/times for a particular
   structure (say quaternions), will you be allowed to use it with the
   apply+qualifiers or will you have to refine ALSO
   the sum/product couple? This is not making extendibility easier.
- set union/intersection (OK: any boolean algebra operator);
- statistic mean;
- some kind of declared function;
- some kind of fn;
- vectorproduct;
- even set/vector/list/matrix construction can be defined that way;
but none of these is stated in
	Moreover, appart from a few of them that should be taken as
particular cases instead of the rule (viz. int, limit and diff), all these
operations can be rendered the same way(s).

Remark 3:
	In general, when it is possible to iterate on a set of values,
it is possible to use any qualifier. For instance, the examples given for
the forall could be defined with a uplimit:

<apply> <!-- the second forall example of -->

<apply> <!-- a tautology -->
	<interval closure="closed-open"><cn>0</cn><cn>10</cn></uplimit>
(\forall x\in\[0 10\[, \forall y\lt x, s.t. x\neq y, x-y\neq 0)

The opportunity to use one of these qualifiers depend only on the structure
of the underlying value set (ordered for up/low limit and interval). Why
restricting them to this.

Remark 4:
	It is a pitty that the begining of, evokes the presence of
an interval (just before the second example) and that this interval is not
specified with the interval construction (but with lowlimit/uplimit).

Appendix: some example of iteration

<lambda> <!-- define the powerset of E (by iterating union) -->
	<bvar><ci type="set">E</ci></bvar>

<lambda> <!-- define the powerset of E (by iterating set) -->
	<bvar><ci type="set">E</ci></bvar>

	I hope this can help.

Best regards,
  Jérôme Euzenat                  /      /\
                                _/  _   _   _ _    _
  INRIA Rhône-Alpes,           /_) | ` / ) | \ \  /_)
                              (___/___(_/_/  / /_(_________________
  655, avenue de l'Europe     /
  38330 Montbonnot St Martin,/          Jerome.Euzenat@inrialpes.fr
  France____________________/          http://www.inrialpes.fr/exmo