MathGroup Archive 2005

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

Search the Archive

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?