MathGroup Archive 1994

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

Search the Archive

[no subject]

Prof P Schatz <pns at> write:

> At 10:03 AM 11/9/94 -0800, Pekka Janhunen wrote:
> >Dear Mathgroup,
> >
> >This question has been brought up several times in this mailgroup also.
> >Could someone from WRI answer.
> >
> >Why is it that Mma still does not have any proper mechanism for
> >Assuming[a>b] or Declaring[a,Positive] or Declaring[{n,m,k},Integer].
> Here! Here!  Clearly, Pekka is correct.  A very large number of
> Mathematica users would like an answer to this.  Let us please have an
> answer from WRI!!!!

Yes indeed.  There are actually 3 problems here.  

1.  Associating properties with a symbol.  
2.  Inferring properties of expressions.
3.  Associating properties with expressions.

First of all, Mathematica doesn't really seem to understand
mathematics, it is just a symbol pushing engine.  Thus if one writes
x/: Positive[x] = True, it does not even know the equivalent facts
that x>0 is also True or that NonNegative[x] is False or that Sign[x]
is 1.  Mathematica should be fixed so that there is one fundamental
representation for the sign of a symbol that denotes a real number,
and all these other forms are just syntactic equivalents for the same

Pekka's Declare.m package does a quite good job, if one sticks with
Negative, NonNegative, Positive, and NonPositive (it's missing
NonZero), of providing simple inference rules for expressions made up
of symbols and constants.  Thus if you write Declare[x,Positive] and
Declare[y,Positive], then Positive[x+y] will be True.  It doesn't
contain a proof system, so it can't tell that Positive[x^2 -2 x y +
y^2] is true, even though it can tell that Positive [(x-y)^2] is true.
I understand why WRI would be reluctant to get into including a proof
engine, so if WRI built this same behavior into Mathematica it would
be understandable.

Many Mathematica functions are often conservative because of the
problems of negative and complex arguments.  We often find ourselves
having to use PowerExpand and ComplexExpand to help it make
simplifications that would be automatic if it knew something about
limitations on the values of expressions.  One particularly nice
feature would be a means for indicating, at either caller or callee
side, that that a given parameter to a function was postive or real
and have that be understood at the appropriate places.  

  -- David Jacobson

  • Prev by Date: Re: Negative Area
  • Next by Date: Re: Simple command to strip Notebook
  • Previous by thread: RE: function definition
  • Next by thread: [no subject]