axiom-developer
[Top][All Lists]

## [Axiom-developer] [Tuples Products And Records]

 From: wyscc Subject: [Axiom-developer] [Tuples Products And Records] Date: Tue, 05 Jul 2005 15:07:39 -0500

Changes
http://page.axiom-developer.org/zope/mathaction/TuplesProductsAndRecords/diff
--

??changed:
-Product can be looked up in hyperdoc. It is listed in Appendix C (p. 613 of
Axiom (paper) Book; p. 1028 of eBook). Tuple is more like Direct Product since
the entries must come from the same domain. However, Product  constructs only
Cartesian product of two domains; Direct Product requires a dimension
parameter; whereas Tuple does not (arbitrary length). Also Tuple is only a
linear aggregate (or PRIMARR) and has no algebraic structure. Direct product
exists in many categories.
-
-So, a tuple is not an element of Product (it is a Cartesian product in a loose
mathematical sense: Tuple S is actually the infinite union of
DirectProduct(n,S) over all n.
'Product' can be looked up in hyperdoc. It is listed in Appendix C (p. 613 of
Axiom (paper) Book; p. 1028 of eBook). 'Tuple' is more like 'DirectProduct'
since the entries must come from the same domain. However, 'Product'
constructs only Cartesian product of two domains; 'DirectProduct' requires a
dimension parameter; whereas 'Tuple' does not (arbitrary length). Also 'Tuple'
is only a linear aggregate (or 'PRIMARR') and has no algebraic structure.
Direct product exists in many categories.

So, a tuple is not an element of 'Product' (it is a Cartesian product in a
loose mathematical sense: 'Tuple S' is actually the infinite union of
'DirectProduct(n,S)' over all 'n'.

??changed:
-I think a domain such as Product deserves (much) more documentation
I think a domain such as 'Product' deserves (much) more documentation

??changed:
-> Tuple is more like Direct Product since the entries must come
> 'Tuple' is more like 'DirectProduct' since the entries must come

??changed:
-The domain Tuple and the use of tuple in Axiom seems to be
The domain 'Tuple' and the use of tuple in Axiom seems to be

??changed:
-  signatures (for example, (Integer, Integer)− > Integer). A
signatures (for example, (Integer, Integer)−> Integer). A

??changed:
-What I want is for Product to be generalized to an n-ary
What I want is for 'Product' to be generalized to an 'n'-ary

??changed:
-being interpreted as Tuples, I think such tuples should be
-Products:
being interpreted as 'Tuples', I think such tuples should be
'Products':

??changed:
-> Tuple S is actually the infinite union of DirectProduct?(n,S) over all n.
-
-What you describe sounds more like InfiniteTuple - another interesting
> 'Tuple S' is actually the infinite union of 'DirectProduct(n,S)' over all 'n'.

What you describe sounds more like 'InfiniteTuple' - another interesting

??changed:
-> I think a domain such as Product deserves (much) more documentation
> I think a domain such as 'Product' deserves (much) more documentation

??changed:
-> > Tuple is more like Direct Product since the entries must come
> > 'Tuple' is more like 'DirectProduct' since the entries must come

??changed:
-> The domain Tuple and the use of tuple in Axiom seems to be
> The domain 'Tuple' and the use of tuple in Axiom seems to be

??changed:
->   signatures (for example, (Integer, Integer)b > Integer). A
>   signatures (for example, (Integer, Integer)->Integer). A

??changed:
-There is a subtle distinction. Tuples have no bounding parenthesis or brackets
There is a subtle distinction. 'Tuples' have no bounding parenthesis or brackets

??changed:
-because it is a true list, where as a List object is a single object, not a
because it is a true list, where as a 'List' object is a single object, not a

??changed:
-> What I want is for Product to be generalized to an n-ary
> What I want is for 'Product' to be generalized to an 'n'-ary

??changed:
-> > Tuple S is actually the infinite union of DirectProduct?(n,S) over all n.
> > 'Tuple S' is actually the infinite union of 'DirectProduct(n,S)' over all
> > 'n'.

??changed:
-> What you describe sounds more like InfiniteTuple - another interesting
> What you describe sounds more like 'InfiniteTuple' - another interesting

??changed:
-No. InfiniteTuple is more like stream. It is conceptually infinite in length. A
-construct analogous to Tuple S is Matrix(R), which can have arbitary but finite
-dimensions. Matrix(R) is conceptually the union of Matrix(m,n,R) over all m and
-n. An object in Tuple S has arbitrary but finite length.
No. 'InfiniteTuple' is more like 'Stream'. It is conceptually infinite in
length. A
construct analogous to 'Tuple S' is 'Matrix(R)', which can have arbitary but
finite
dimensions. 'Matrix(R)' is conceptually the union of 'Matrix(m,n,R)' over all
'm' and
'n'. An object in 'Tuple S' has arbitrary but finite length.

??changed:
-> I think such tuples should be Products ...
> I think such tuples should be 'Products' ...

??changed:
-Mapping(T, A, B) denotes the class of mappings from (A, B)
-into T implies that (A,B) denotes some kind of set, i.e.
-the Product(A,B).
'Mapping(T, A, B)' denotes the class of mappings from '(A, B)'
into 'T' implies that '(A,B)' denotes some kind of set, i.e.
the 'Product(A,B)'.

??changed:
-But [Cartesian Product] is implemented as a Record and the
-domain Record is a primative in Axiom. So my proposal above
But [Cartesian Product] is implemented as a 'Record' and the
domain 'Record' is a primitive in Axiom. So my proposal above

??changed:
-> Mapping(T, A, B) denotes the class of mappings from (A, B)
-> into T implies that (A,B) denotes some kind of set, i.e.
-> the Product(A,B).
> 'Mapping(T, A, B)' denotes the class of mappings from '(A, B)'
> into 'T' implies that '(A,B)' denotes some kind of set, i.e.
> the 'Product(A,B)'.

??changed:
-previous post. I agree that the Cartesian product of A, B is implied in the
-notion of Mapping(T,A,B). But that is *not* the issue here.)
previous post. I agree that the Cartesian product of 'A', 'B' is implied in the
notion of 'Mapping(T,A,B)'. But that is *not* the issue here.)

??changed:
-the same category. If
-$$f:A \times B \rightarrow C$$
-is a mapping, where $A$, $B$ are from the same category, we may sometimes let
-$$D = A \times B$$
-and identify $f$ as
-$$f:D \rightarrow C$$
the same category. If 'f:A x B -> C'
is a mapping, where 'A', 'B' are from the same category, we may sometimes let
'D = A x B'
and identify 'f' as
'f:D -> C';

??changed:
-$$g:D \rightarrow C$$
'g:D -> C'.

??changed:
-of $f$ and $g$. In the first case, we would write f(a,b) = c, where as in the
-second case, we would write g(d) = c, with d = (a,b). The two are *not*
-equivalent as *mappings*: $f$ is binary and $g$ is unary. To define $c$ to be
-$a+b$ in both cases, say, it is straight forward in the first case
-$$f(a,b)=a+b$$
-
of 'f' and 'g'. In the first case, we would write 'f(a,b) = c', where as in the
second case, we would write 'g(d) = c', with 'd = (a,b)'. The two are *not*
equivalent as *mappings*: 'f' is binary and 'g' is unary. To define 'c' to be
'a+b' in both cases, say, it is straight forward in the first case
'f(a,b)=a+b'.

??changed:
-$$p:D \rightarrow A$$
'p:D ->A'

??changed:
-$$q:D \rightarrow B$$
'q:D -> B'

??changed:
-$$p(d)=a$$
-$$q(d) = b$$
-
-The true definition of $g$ is:
-$$g(d) = p(d)+q(d)$$
-If the target $C$ is more involved, say $C$ is $D^2$ and $f$ is meant to be
'p(d)=a', and
'q(d) = b'.
The true definition of 'g' is:
'g(d) = p(d)+q(d)'.
If the target
'C' is more involved, say 'C'is $D^2$ and 'f' is meant to be

??changed:
-$$D \rightarrow D^2$$
-then the $g$-form would be more preferrable:
-$$g(d) = (d,d)$$
'D -> ' $D^2$
then the 'g'-form would be more preferrable:
'g(d) = (d,d)'.

??changed:
-arguments are sometimes not fixed, known as *variable arity*, which in
arguments is sometimes not fixed; known as *variable arity*, it in

--