oldk1331 wrote:
> 
> My question is, is there a domain to express expressions
> that are not expanded, for example "a+1/b" will not be
> "(a*b+1)/b".

Nothing substantial.  For some experiments I tried:

IntegerAsNothing : SetCategory == Integer

and then used Expression(IntegerAsNothing).  But such bare
domain misses a lot of desired functionality.

More generally, it is hard to put such domain into existing
framework.  Namely, the problem is zero testing: without
expanding one can try to compute hash and maybe get indication
of inequality.  But equality of hashes proves nothing and
evaluation of hash may fail.  You may be able to prove
equality in some cases.  But in general we will have three
valued logic: known equal, known unequal and unknown.
Trying to use this as boolean value (which is required by
existing domains) leads to bugs.

So it would be interesting to have support for unevaluated
expressions, but doing it properly requires serious effect.
In particular, rather than current approach which assumes
that various functions are computable we would have to use
rewrite based approch, with rewrite done only when proven
correct.  And we would need some heuristics to decide
when expanding is safe and leads to answer.

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to