Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: Re: Re: Re: Mathematica language issues

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53164] Re: [mg53142] Re: [mg53112] Re: [mg53050] Re: Mathematica language issues
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Mon, 27 Dec 2004 06:41:34 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Correctness in the strict sense does not seem to be an issue here. 
Because it does not give you access to the source code Mathematica 
documentation consists either of "models" , rather like Fred's,  or 
examples of usage from which the user is supposed to work by analogy to 
deduce what will happen in other cases. Neither of these approaches 
gives you full knowledge and always there is some remaining "mystery".
Sometimes when working by analogy and attempting inputs that were not 
actually explicitly mentioned in the documentation you will soemtimes 
discover that they do not work as you had expected. Occasionally WRI 
admits that this behaviour is not what they intended and it then is 
officially classified as a bug. Sometimes, however, it turns out to be 
an exception that was merely "undocumented". But what does that really 
mean? Obviously documentation does not mean listing all possible inputs 
and all possible outputs; even if such a thing were possible it would 
not be very useful. How can this be corrected? Well, either by creating 
a more complicated model (like the one Fred has now proposed for the 
operation of Times and Plus) or by giving some extra examples or 
counter-examples, e.g saying explicitly:  a+b+c/.s:a+b->0 will not 
work. But the situation seems to be rather like with Goedel's 
Incompletness; adding such things to the documentation will almost 
certainly lead to new exceptions. In the end it may be that the only 
complete and correct documentation of Mathematica would have to consist 
of its source code. I can't prove it but it would make an interesting 
theorem which, in the spirit of Chaitin's algorithmic information 
theory, we could state by saying that Mathematica is 
information-theoretically incompressible ;-)


Andrzej

On 26 Dec 2004, at 01:18, DrBob wrote:

>>> If Fred's "speculations" came form an employee of WRI they could
>>> have the status of "documentation" without changing a word. The
>>> mystery here is simply a question of authoritativeness.
>
> If he's correct, you mean.
>
> Bobby
>
> On Sat, 25 Dec 2004 22:55:10 +0900, Andrzej Kozlowski 
> <akoz at mimuw.edu.pl> wrote:
>
>> *This message was transferred with a trial version of CommuniGate(tm) 
>> Pro*
>> I am sure Fred will provide his own answers, but on the principle "the
>> more the merrier" (especially at Christmas) , I thought I would
>> contribute my own comments:
>>
>> On 25 Dec 2004, at 18:00, DrBob wrote:
>>
>>> Fred,
>>>
>>> At several points you made statements I simply don't understand. The
>>> examples clarify what you meant for the most part, but I'm still
>>> wondering, so here goes:
>>>
>>>>> Unevaluated is meant to pass unevaluated arguments to a function
>>>>> body and as such it works perfectly. No one in practice is 
>>>>> interested
>>>>> in (1+1)*Unevaluated[2+2].
>>>
>>> Do you mean a Function body? If not, Times in that example qualifies
>>> as a function body. (I think.)
>>
>> One uses Unevaluated to prevent a rule from being applied. This means
>> that a rational person will only do it when he knows there is a rule
>> that he does not want to be used. There is no normal situation where
>> one would use Unevaluated and there was no specific evaluation one
>> wanted to prevent.
>>
>>>
>>>>> If now no rules for f can be applied, Mathematica returns the 
>>>>> result
>>>>> so far, with Unevaluated wrapped again around the labeled 
>>>>> arguments.
>>>
>>> So it's only rules FOR F that matter? Does the distributive property
>>> count as a rule for Times?
>>
>> You do not need Unevaluated to prevent the distributive rule being 
>> used
>> because it is never used automatically. You need to apply something
>> like Distribute etc.
>>
>>>
>>>>> If a rule for f can be applied, the administration of arguments
>>>>> that come from Unevaluated is completely skipped.
>>>
>>> I don't get any meaning from the phrase "administration of 
>>> arguments".
>>
>> I think Fred meant that the rule is applied to the arguments "as
>> given", without changing them or rearranging in any way.
>>
>>>
>>>>> I first formulate my assumption (only WRI and maybe a few others
>>>>> know if I am right!)
>>>
>>> Even if your assumption is correct (as I suspect it is), this
>>> statement doesn't really square with a later claim that there's no
>>> mystery.
>>
>> A certian mystery exists even when we have full documentation, because
>> even that is only a description of expected behaviour of Mathematica
>> and does not include the actual mechanism behind the behaviour (of
>> which at most a vague idea is provided). Everything else requires the
>> source code. If Fred's "speculations" came form an employee of WRI 
>> they
>> could have the status of "documentation" without changing a word. The
>> mystery here is simply a question of authoritativeness.
>>
>>
>> Andrzej Kozlowski
>> Chiba, Japan
>> http://www.akikoz.net/~andrzej/
>> http://www.mimuw.edu.pl/~akoz/
>>
>>
>>
>>
>
>
>
> -- 
> DrBob at bigfoot.com
> www.eclecticdreams.net
>
>


  • Prev by Date: Re: Mathematica language issues
  • Next by Date: Re: Re: Re: Re: Mathematica language issues
  • Previous by thread: Re: Re: Re: Re: Mathematica language issues
  • Next by thread: Re: Re: Mathematica language issues