From: Stavros M. <mac...@al...> - 2020-05-17 19:33:49
|
There appears to be a bug where maybe(x>NUMBER) adds a node to the assume database, which is silly since of course asking the question adds no information. -s (%i3) :lisp (setq *print-circle* t *print-level* 50 *print-length* 50 linel 150) 150 (%i3) :lisp (symbol-plist '$%pi) (SYSCONST T TEXWORD \pi DATA (#1=((MEQP $%PI #2=(3.141592653589793 DATA (#1# #3=((MGRP #2# #4=(2.718281828459045 DATA (#5=((MGRP #4# #6=(1.618033988749895 DATA (#7=((MGRP #6# #8=(0.5772156649015329 DATA (((MEQP $%GAMMA #8#) CON $GLOBAL) #7#)))) ((MEQP $%PHI #6#) CON $GLOBAL) #5#)))) #3# ((MEQP $%E #4#) CON $GLOBAL)))))))) CON $GLOBAL) ((KIND $%PI $CONSTANT) CON $GLOBAL) ((KIND $%PI $IRRATIONAL)) ((KIND $%PI $REAL)) ((KIND $%PI $NONINTEGER))) IMPLIED-QUOTEP T MPROPS (NIL $NUMER 3.141592653589793)) (%i3) maybe(x>234)$ (%i4) :lisp (symbol-plist '$%pi) (SYSCONST T TEXWORD \pi DATA (#1=((MEQP $%PI #2=(3.141592653589793 DATA (#3=((MGRP #4=(234 DATA (#5=((MEQP (234.0 DATA (#5#)) #4#)) #3#)) <<<<<<<< ??? #2#)) #1# #6=((MGRP #2# #7=(2.718281828459045 DATA (#8=((MGRP #7# #9=(1.618033988749895 DATA (#10=((MGRP #9# #11=(0.5772156649015329 DATA (#12=((MGRP #11# (0 DATA (#12#)))) ((MEQP $%GAMMA #11#) CON $GLOBAL) #10#)))) ((MEQP $%PHI #9#) CON $GLOBAL) #8#)))) #6# ((MEQP $%E #7#) CON $GLOBAL)))))))) CON $GLOBAL) ((KIND $%PI $CONSTANT) CON $GLOBAL) ((KIND $%PI $IRRATIONAL)) ((KIND $%PI $REAL)) ((KIND $%PI $NONINTEGER))) IMPLIED-QUOTEP T MPROPS (NIL $NUMER 3.141592653589793)) On Sun, May 17, 2020 at 2:30 PM Richard Fateman <fa...@cs...> wrote: > > > On 5/16/2020 8:36 PM, Stavros Macrakis wrote: > > There is nothing illegal in any way about circular lists. > > If a garbage collector doesn't handle them properly, it is a BUG. > I entirely agree. My suspicion was that in optimizing for other things, > the GC handling of circular lists got messed up. Most programs don't > use circular lists, but they are supported in various ways in the Common > Lisp standard, e.g. *print-circle*. > > If the assume database is caching too much, and somehow stack space is > getting consumed looking in it, that's also possible. > > For geometric predicates like x<1 it would seem unnecessary to also > store x<2. If that's what's going on. > RJF > > > > |