A while ago we had a discussion about restoring one? and zero? without
conclusion.  I just ran into an example, which was at first surprising
to me, but may shed light on some issues:

Just for fun, I tried to compute a determinant of arithmetic function.
Here is what happened:

(22) -> m: DIRRING INT := (n:PI):INT +-> moebiusMu(n)

   (22)  [1,- 1,- 1,0,- 1,1,- 1,0,0,1,...]
                                                 Type: DirichletRing(Integer)
(23) -> c := recip m

   (23)  [1,1,1,1,1,1,1,1,1,1,...]
                                      Type: Union(DirichletRing(Integer),...)
(24) -> ma := matrix [[c^(i*j) for i in 1..5] for j in 1..5];

                                         Type: Matrix(DirichletRing(Integer))
(25) -> determinant ma
Function:  ?=? : (%,%) -> Boolean is missing from domain:
                                         DirichletRing(Integer)
   Internal Error
   The function = with signature (Boolean)$$ is missing from domain 
      DirichletRing(Integer) 

Well, of course I didn't implement equality - it's not possible.  But
why would determinant need equality?

Well, it turns out it want's to check whether something is *possibly*
nonzero.  Thus, it would be quite possible to compute the determinant if
we had a function zero? that is guaranteed to answer true only for 0,
and false otherwise.

I think it would be good to define and implement such a scheme.  I'd
think that for quite a few domains we can answer some questions in a
useful way.

Of course, it is very important to fix the semantics and attach good
names to the operations.  So perhaps possiblyNonZero? or guaranteedZero?
would be better.  (Same thing for = and one?)

Martin

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to