Re: Experimental`ImpliesQ, Help me understand it.
- To: mathgroup at smc.vnet.net
- Subject: [mg59247] Re: Experimental`ImpliesQ, Help me understand it.
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 3 Aug 2005 01:19:51 -0400 (EDT)
- Organization: The Open University, Milton Keynes, U.K.
- References: <dcmu3r$gik$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Nasser Abbasi wrote:
>
> Hello;
>
> This 5.2 on windows.
>
> Starting from the logic that If sin^2+cos^2==q, then this implies q
> must be 1, so I typed:
>
> ------------
> Remove["Global`*"]
> Experimental`ImpliesQ[Sin[x]^2 + Cos[x]^2 == q, q == 1]
> Experimental`ImpliesQ[FullSimplify[Sin[x]^2 + Cos[x]^2 == q], q == 1]
>
> False
>
> True
>
> -------------
> From the help it says:
>
> "ImpliesQ returns False if it cannot determine whether a implies a,
> using any of its built-in transformation rules. "
>
> So, my question is, why did I have to fully simplify sin^2+cos^2==q to
> get True? I would think I should get True without it. As the help
> seems to say it will try all the build-in transformation rules?
Hi Nasser,
The documentation does not say ?all the built-in replacement rules? but
?any of *its* [the function *ImpliesQ*] built-in replacement rules?,
which, I believe, make a huge difference :-) Especially keeping in mind
that the function is located in a context called _Experimental_. So, if
I were you, I would not expect too much of such a function, at least not
without the help of a human brain and some Mathematica tweaking!
Now, since *FullSimplify* returns q == 1, *ImpliesQ* is able to say that
the first expression implies the second one, which is the same indeed?
In[1]:=
FullSimplify[Sin[x]^2 + Cos[x]^2 == q]
Out[1]=
q == 1
In[2]:=
Experimental`ImpliesQ[FullSimplify[
Sin[x]^2 + Cos[x]^2 == q], q == 1]
Out[2]=
True
Best regards,
/J.M.