How to untellrat?



Thanks for the information; maybe some of your answer should be in the 
user documentation. 

As for a user determining the so called kernel, maybe something like this 
works:

(%i2) tellrat(x^2  + x*y + z);
(%o2) [z+x*y+x^2]

(%i3) :lisp(print tellratlist)
(($Z 1 1 0 ((MPLUS RATSIMP) ((MTIMES RATSIMP) $X $Y) ((MEXPT RATSIMP) $X 
2)))) 
(($Z 1 1 0 ((MPLUS RATSIMP) ((MTIMES RATSIMP) $X $Y) ((MEXPT RATSIMP) $X 
2))))

(%i3) :lisp(defun $tellrat_kernel () (caar tellratlist))
$TELLRAT_KERNEL

(%i3) tellrat_kernel();
(%o3) z

(%i4) untellrat(tellrat_kernel());
(%o4) []

(%i5) ratsimp(x^2  + x*y + z);
(%o5) z+x*y+x^2

Hours ago, I found a better way to do what I wanted without tellrat.

--Barton

maxima-bounces at math.utexas.edu wrote on 03/18/2011 01:25:43 PM:

> [image removed] 
> 
> Re: [Maxima] How to untellrat?
> 
> Michel Talon 
> 
> to:
> 
> maxima
> 
> 03/18/2011 01:26 PM
> 
> Sent by:
> 
> maxima-bounces at math.utexas.edu
> 
> Barton Willis wrote:
> 
> > To remove a tellrat fact, the function untellrat needs the kernel. How 
is
> > a user to know the kernel? 
> 
> I think tellrat adds algebraic integers to the base field. This means 
> solutions of polynomial equations with integer coeffs and monic higher 
order 
> term. This is perhaps not explained clearly in the doc
> niobe% maxima
> (%i1) tellrat(2*y^2 -3*y +1);
> 
> Minimal polynomial must be monic
>  -- an error. To debug this try: debugmode(true);
> (%i2) tellrat(y^2 -3*y+1);
>                                   2
> (%o2)                           [y  - 3 y + 1]
> (%i3) ratsimp(y^4+5*y^3 +1);
>                                   4      3
> (%o3)                            y  + 5 y  + 1
> (%i4) algebraic:true;
> (%o4)                                true
> (%i5) ratsimp(y^4+5*y^3 +1);
> (%o5)                              61 y - 22
> 
> So we have added the algebraic integer y which means that polynomials in 
y
> are simplified (by writing repeatedly y^2=...) to first order. 
Conversely
> it is natural to apply untellrat to the same algebraic integer y which
> WILL become transcendental again. 
> 
> It seems that tellrat discovers itself its variables which however 
implies
> choices if there are several variables.
> 
> (%i9) tellrat(y^2 -3*y+z^3);
>                                   3    2
> (%o9)                           [z  + y  - 3 y]
> (%i10) ratsimp(y^5+z^5);
>                                       2   2    5
> (%o10)                        (3 y - y ) z  + y
> 
> So it has clearly chosen to say that z is an algebraic integer over the 
> field obtained by adjoining the transcendental y to the rationals. I 
think
> that says what is the "kernel". 
> 
> 
> -- 
> Michel Talon
> 
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima