(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?
Right! Mathematically, just computing products that comprise the
determinantal expression would not need zero?.
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.
Well, according to the assumptions made in MatrixLinearAlgebraFunctions,
the argument R has to be a CommutativeRing. With DirichletRing you
assert that, but we must at some point in time decide what Ring actually
means.
The important question is whether all relevant operations should fulfill
the axioms with a constructive proof.
In a commutative ring we have 1+0 = 1. Does that hold in DirichletRing?
It holds mathematically, but not in your implementation.
Since your implementation does not actually fulfill the axioms
constructively, you cannot assert that DirichletRing belongs to the
category Ring. So there is no reason to be surprised if some operations
that rely on some assertions fail.
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.
I don't know what exactly you mean by "such a scheme", but although I
found it somehow strange in the beginning, Aldor's Algebra library went
a more conservative way. There, for example, Float is *not* a Field. We
all know floating point computation is not even associative, so why
should Float be a field. Float is only a model for the real numbers, it
is not the real numbers itself.
(2) -> TaylorSeries(Integer) has Ring
(2) true
Type: Boolean
That is wrong, as well. Well, I don't care whether it is called Ring or
whatever, the problem is that the current classification is not
finegrained enought to cover all cases.
For example one could have that
TaylorSeries(Integer) has RingOperations
meaning that all the usual ring operations are available, but you don't
assert anything about axioms these operations fulfill.
Maybe that becomes unhandy, but I rather have an unhandy system than
something that crashes where it is not expected.
Ralf
--
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.