[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: defintrf bug
From: |
Stephen Wilson |
Subject: |
[Axiom-developer] Re: defintrf bug |
Date: |
09 Jul 2007 17:02:15 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Hello again,
Stephen Wilson <address@hidden> writes:
[...]
> > (|Record|
> > (|:| (QREFELT $$ 2) (|Fraction| (|Integer|)))
> > (|:| (QREFELT $$ 1) (|Integer)))
> > expands to
> > (|Record0|
> > (LIST (CONS '|endpoint|
> > (|Fraction| (|Integer|)))
> > (CONS '|dir| (|Integer|))))
> >
> > this seems like a bug in the algebra code to me.
> > The function keeprec? expects a REC record with left and right indices
> > but "endpoint" and "dir" are the indices of a REC2:
> > REC2 ==> Record(endpoint:Q, dir:Z)
> > so it doesn't seem valid to call keeprec? on a REC2 construct.
>
> Nice catch. But is this a bug in the algebra?
Looking at the code again, this is actually fine. The code in
question is being passed to check-union. The type expression is not
related to the argument to keeprec?, but rather to the dereferencing
of the halfinf branch in the Union object bound to `i'. The code is
checking that "i.halfinf" (of type REC2) is valid.
At least its not another bug.
Cheers,
Steve