Re: No Biconditional?
- To: mathgroup at smc.vnet.net
- Subject: [mg61957] Re: [mg61945] No Biconditional?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 5 Nov 2005 22:41:42 -0500 (EST)
- References: <200511050652.BAA02048@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 5 Nov 2005, at 15:52, Steven T. Hatton wrote:
> I guess, technically, Equal will provide all the functionality that a
> biconditional operator would provide. I'm a bit surprised that, so
> far as
> I can see, there is no biconditional in a form typically used in
> symbolic
> logic. I will grant that the traditional symbols are problematic
> in more
> ways than one. For example, <=> is sometimes used to denote
> definition,
> and <-> is used to denote a biconditional relation. In the
> contexts where
> <-> is used, -> would be used as a conditional. Unfortunately for
> purists
> of symbolic logic, -> has been dedicated to other purposes in
> Mathematica.
> Is there any convention for denoting a biconditional relation in the
> context of electronic documents? That is, in the sense of symbolic
> logic.
>
> I see the <-> is available, as is <=>, but, if my observations are
> correct
> <=> has the wrong precedence. For example in
> (P \[And] Q) \[DoubleLeftRightArrow] \[Not] P \[Or] \[Not] Q,
> \[DoubleLeftRightArrow] binds more tightly than \[Or] resulting in:
> Or[Not[DoubleLeftRightArrow[And[P, Q], Not[P]]], Not[Q]]. There
> appears to
> be a way to change the precedence of operators, but I don't know
> how to
> determine what precedence I should give an operator whose behavior I
> define. Should I simply use == and suffer the indignation?
> --
> "Philosophy is written in this grand book, The Universe. ... But
> the book
> cannot be understood unless one first learns to comprehend the
> language...
> in which it is written. It is written in the language of
> mathematics, ...;
> without which wanders about in a dark labyrinth." The Lion of Gaul
>
From your post I am not sure if you are aware that Mathematica has a
built in function Implies and that
Implies[p,q] is rendered in TraditionalForm as is usual in symbolic
logic. If you wish you can define
Equivalent[p_, q_] := And[Implies[p, q], Implies[q, p]]
and then do things like:
In[3]:=
FullSimplify[Equivalent[p && (q || r),
(p && q) || (p && r)]]
Out[3]=
True
Furthermore, you could try to use the Notation package to make <=>
mean Equivalent. (However, I would never do so since I hold a deep
grudge against the Notation package, which currently totally refuses
to work on my system. I do not even wish to try to find out why!)
Andrzej Kozlowski
- References:
- No Biconditional?
- From: "Steven T. Hatton" <hattons@globalsymmetry.com>
- No Biconditional?