# Re: A few questions/suggestions about MathML 2.0

In his message (Re: A few questions/suggestions about MathML 2.0) of 24/02/00,
David Carlisle wrote:
>We'll reply on the list but first we need to think about what
>{ <x,y> | x\in A /\ y\in B }

This is just a very natural expression for the Cartesian product of two sets
A and B:

A*B = { <x,y> | x\in A /\ y\in B }

(read the product of A and B is the set of all pairs made of one element of A
and one of B).

In fact, this can be rephrased in MathML (by using vectors for pairs) to:

<set>
<bvar><ci type="vector">v</ci></bvar>
<condition>
<apply><and/>
<apply><in/>
<apply><selector/>
<ci>v</ci>
<cn>1</cn>
</apply>
<ci>A</ci>
</apply>
<apply><in/>
<apply><selector/>
<ci>v</ci>
<cn>2</cn>
</apply>
<ci>B</ci>
</apply>
</apply>
</condition>
</set>

The (IMHO) natural expression, could be written:

<set>
<elements><vector><ci>x</ci><ci>y</ci></vector></elements>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<condition>
<apply><and/>
<apply><in/>
<ci>x</ci>
<ci>A</ci>
</apply>
<apply><in/>
<ci>y</ci>
<ci>B</ci>
</apply>
</apply>
</condition>
</set>

Here I introduce the "element" tag for pointing out what I return as the
elements of the set.
I am not attached to the "element" name, nor I pretend that this way of
writing must be implemented in MathML (as far as we can encode all of them
in the same way as the first MathML example). What I just said in my mail
is that it must be clear how the bvar in the set (resp. list, vector) construct
have to be interpreted. Because, in that precise context, they are more than
just bindings: they specify the elements of the set being constructed.

__
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

`

References: