[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Curiosities with Axiom mathematical structures

From: Gabriel Dos Reis
Subject: Re: [Axiom-developer] Curiosities with Axiom mathematical structures
Date: 14 Mar 2006 01:49:00 +0100

Ralf Hemmecke <address@hidden> writes:

| hi Martin,
| On 03/13/2006 01:15 PM, Martin Rubey wrote:
| > Ralf Hemmecke <address@hidden> writes:
| >
| >> Hi Martin,
| >>
| >> a quick response to the following...
| >>
| >>> There is a simple practical reason why I dislike the idea of asking just
| >>> "Integer has Monoid".
| >>> Imagine I'm programming a package, and I need that a parameter domain M 
is a
| >>> monoid, so that I can use the monoidal structure, for example for
| >>> multiplying. Well, then simply asking M has Monoid doesn't buy me 
| >>> since I won't be sure that M really is a Monoid with respect to "+".
| >> Imagine you could ask "if M has Monoid(+)..." or "if M has
| >> Monoid(*)...". According to which returns true, you would then go on and 
| >> (m1 +$M m2) or (m1 *$M m2). Well, but M might have a monoid structure with
| >> respect to the operation ".". Do you really also want to ask "if M has
| >> Monoid(.)..."? That soon becomes impractical.
| > No, this is not an issue about practicality.
| > Look at it this way: Suppose "M has Monoid" returns "true". How do
| > you know
| > then with respect to which operation M is a monoid? What can you do with the
| > information that M is a monoid with respect to some operation?
| If
|    Monodid: Category == with{ 1:%; *:(%,%)->%; }
| then "M has Monoid" means that M has a 1 and *.

I note the predicate.  Notice that what you say does not contradict
what Martin said.  You're showing a non-parameterez structure --
where the exported constants are not parameterized.  Martin is
interested in case the structure is parameterized.  Consequently the
proper course of action is that the question is asked for specific

-- Gaby

reply via email to

[Prev in Thread] Current Thread [Next in Thread]