[Haskell-cafe] FOL

Bill Wood william.wood3 at comcast.net
Tue Jun 5 03:32:21 EDT 2007


On Tue, 2007-06-05 at 14:41 +1000, Tony Morris wrote:
> I would like to know if all 16 possible functions that accept two
> boolean arguments have names in First-Order Logic. I know they have
> Haskell function names (e.g. \p -> \_ -> id p, \_ -> \_ -> const True),
> but I'm hoping there is a more general name that is recognised by anyone
> with a feel for logic, but not necessarily Haskell.
> 
> I have listed all sixteen of these functions below using Haskell (named
> a to p) along with the name of those that I am aware of having a name as
> a comment.
> 
> Thanks for any tips.
> 
> {-
> 
> p q | a b c d e f g h i j k l m n o p
> 0 0 | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
> 0 1 | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
> 1 0 | 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
> 1 1 | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
> 
> -}

The best I've been able to come up with is names and connective phrases
for pronunciation for twelve.  I suspect that not enough people have
found a use for the others to warrant specific terms.

In the table below I've listed the twelve with name, phrase and
corresponding column of your table.  I've expressed the phrases in the
form "P <phrase> Q" to indicate (rough) pronunciation.

      Name                        Connective        Table Column
----------------------------------------------------------------
Conjunction                     P and Q                   b
Inclusive Disjunction           P or Q                    h
Exclusive Disjunction           P exclusive or Q          g
Conditional                     P only if Q               n
Biconditional                   P if and only if Q        j
Sheffer Stroke                  P stroke (nand) Q         o
Sheffer Slash                   P slash (nor) Q           i
Inverse Conditional             P if Q                    l
Tautology                       True                      p
Inconsistency                   False                     a
Negative Conditional            P but not Q               c
Negative Inverse Conditional    Q but not P               e

As you can see from the table, Tautology and Inconsistency are rarely if
ever used as connectives.

I checked these in Carol Horn Greenstein, _Dictionary of Logical Terms
and Symbols_, Van Nostrand Reinhold Company, 1978.

 -- Bill Wood



More information about the Haskell-Cafe mailing list