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

```

• Prev by Date: Re: Re: Re: 2.9.2 How Input and Output Work
• Next by Date: Re: Removed[\$\$Failure] in Integrate
• Previous by thread: No Biconditional?
• Next by thread: Re: No Biconditional?