laplace() and tellsimpafter()



On 2012-11-25, Stavros Macrakis <macrakis at alum.mit.edu> wrote:

> 1) tellsimpafter attaches the simplification property to the *verb* laplace,
> not the *noun* laplace (cf. noun and verb section of
> manual<http://maxima.sourceforge.net/docs/manual/en/maxima_6.html#SEC31>;),
> but the simplification needs to be on the noun.  It is unclear whether this
> is a bug; it is conceivable that one would want different transformations
> on the verb form and the noun form.

Well, I think tellsimpafter's treatment of nouns and verbs can only be
described as a bug. I'm tempted to say that a rule should always apply
only to either the noun or verb form, in the spirit of "you got what you
asked for". Here's a description of how it works at present (as
determined by reading the code & trying some examples):

     The treatment of noun and verb forms is slightly confused.  If a
     rule is defined for a noun (or verb) form and a rule for the
     corresponding verb (or noun) form already exists, the
     newly-defined rule applies to both forms (noun and verb).  If a
     rule for the corresponding verb (or noun) form does not exist, the
     newly-defined rule applies only to the noun (or verb) form.

Whatever we decide about tellsimpafter, we should ensure that tellsimp,
defrule, and defmatch act the same.

> 2) when the laplace function returns a result, it marks it as simplified
> without giving the simplifier a chance to apply tellsimpafter rules.  This
> is a bug, which should be corrected.

laplace constructs a lot of expressions with the SIMP flag, which should
just be struck out, right? laplace shouldn't mark expressions with the
SIMP flag.

best,

Robert Dodier