[no subject]

*From*: mathgroup-adm at christensen.Cybernetics.NET*Date*: Mon, 28 Nov 94 07:13:19 EST*Apparently-to*: <POWELLA at delphi.com>*Apparently-to*: <sfowler at sun.cis.smu.edu>*Apparently-to*: <valencia at tsc.upna.es>*Apparently-to*: <tleaf at lanl.gov>*Apparently-to*: <walton at coafs1.wes.army.mil>*Apparently-to*: <merx at pc.chemie.th-darmstadt.de>*Apparently-to*: <hans.steffani at e-technik.tu-chemnitz.de>*Apparently-to*: <tobin.anthony at gsfc.nasa.gov>*Apparently-to*: <Jack_Calman at jhuapl.edu>*Apparently-to*: <mkohn at westnet.com>*Apparently-to*: <msreeve at netcom.com>*Apparently-to*: <pattyl at wri.com>*Apparently-to*: <austrian at ri.cmu.edu>*Apparently-to*: <dschneid at knox.edu>*Apparently-to*: <torkkk at pcrl.sps.mot.com>*Apparently-to*: <roger at eccles.psych.nwu.edu>*Apparently-to*: <karl at faepds01.tu-graz.ac.at>*Apparently-to*: <brenda at aqua.civag.unimelb.EDU.AU>*Apparently-to*: <akyildiz at boun.edu.tr>*Apparently-to*: <hasmith at garnet.acns.fsu.edu>*Apparently-to*: <pelle at ic.chalmers.se>*Apparently-to*: <pikus at physics.ucsb.edu>*Apparently-to*: <jrowney at arco.com>*Apparently-to*: <villegas at wri.com>*Apparently-to*: <wri-mathgroup at wri.com>*Apparently-to*: <rvs at amnesix.kfunigraz.ac.at>*Apparently-to*: <becker at lll-winken.llnl.gov>*Apparently-to*: <yosimatu at devd.crl.sony.co.jp>*Apparently-to*: <rcabeza at tsc.upna.es>*Apparently-to*: <ik1 at cec.wustl.edu>*Apparently-to*: <matula at crosby.apl.washington.edu>*Apparently-to*: <phys71 at menudo.uh.edu>*Apparently-to*: <ianc at wri.com>*Apparently-to*: <byoung at austin.sar.slb.com>*Apparently-to*: <xyl10060 at tiptoe.fhda.edu>*Apparently-to*: <mmeadows at emn.com>*Apparently-to*: <naoyuki at osaka-sandai.ac.jp>*Apparently-to*: <mathgroup at bendix.swb.de>*Apparently-to*: <aris at isosun.ariadne-t.gr>*Apparently-to*: <timo at starbase.neosoft.com>*Apparently-to*: <ltrembla at structure.chimie.usherb.ca>

Prof P Schatz <pns at fermi.clas.virginia.edu> 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 thing. 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