MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: A Use for Interpretation

  • To: mathgroup at
  • Subject: [mg85811] Re: [mg85754] Re: A Use for Interpretation
  • From: Murray Eisenberg <murray at>
  • Date: Sat, 23 Feb 2008 04:23:59 -0500 (EST)
  • Organization: Mathematics & Statistics, Univ. of Mass./Amherst
  • References: <> <fphcts$8ij$> <>
  • Reply-to: murray at

What's "Inert"?  Nothing in Documentation Center about it that I see!

David Bailey wrote:
> Murray Eisenberg wrote:
>> Very nice!  Some other places where this might be employed are in laws 
>> of exponents or laws of logs.  Or applying trig identities.  Or Laplace 
>> transform.
>> Ideally, this could be used not just by the teacher, but by the student 
>> who would demonstrate that she knows the rules by "teaching them to the 
>> computer".  Yet there's a "catch" to that: the Mathematica 
>> sophistication needed, what with ReplaceRepeated, RuleDelayed, HoldForm, 
>> ReleaseHold, and FreeQ.  Not to mention the "strange" definition of the 
>> function, like "integrate" here, which must be defined in terms of itself.
>> David Park wrote:
>>> Since Version 6 appeared and I first encountered Interpretation I found it 
>>> rather difficult to understand what use it might have. The examples in Help 
>>> seem almost bizarre.
>>> Here is one use where it works rather well. Teachers might often be 
>>> frustrated in demonstrating the behavior of basic function such as D, 
>>> Integrate or Limit because Mathematica automatically evaluates using its 
>>> built-in rules. With Interpretation we can define a pseudo routine that 
>>> displays as the real routine and then apply our own basic transformation 
>>> rules. Here is an example with a linear breakout of Integrate.
>>> integrate[integrand_, var_] :=
>>>  Interpretation[HoldForm[Integrate[integrand, var]],
>>>   integrate[integrand, var]]
>>> We then define rules that breakout sums and constant factors. The rules even 
>>> display in a nice form.
>>> rule1 = integrate[a_ + b_, x_] -> integrate[a, x] + integrate[b, x]
>>> rule2 = integrate[a_?(FreeQ[#, x] &) b_, x_] -> a integrate[b, x]
>>> Then we can demonstrate how these rules work, performing the actual 
>>> integration in the last step.
>>> integrate[5 a Sin[x] + y Cos[x] + x^2, x]
>>> % //. rule1
>>> % //. rule2
>>> % /. Interpretation[a_, b_] :> ReleaseHold[a]
> I think there is a better way to do this. I use 
> Inert[Integrate]Sin[x],{x,0,Pi}] and use a MakeBoxes rule to display the 
> result as a grey-shaded integral. The advantage of this method is that 
> it is possible to edit the contents of the inert integral and re-input 
> the result.
> David Bailey

Murray Eisenberg                     murray at
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305

  • Prev by Date: Re: Re: "Assuming"
  • Next by Date: Re: Constraint visualization
  • Previous by thread: Re: A Use for Interpretation
  • Next by thread: Re: [functional approach should give] an even faster way