Line 10: |
Line 10: |
| | | |
| ==Logical Equivalence Problem== | | ==Logical Equivalence Problem== |
| + | |
| + | ===Problem=== |
| | | |
| * [http://mathforum.org/kb/message.jspa?messageID=6513648 Problem posted by Mike1234 on the Discrete Math List at the Math Forum]. | | * [http://mathforum.org/kb/message.jspa?messageID=6513648 Problem posted by Mike1234 on the Discrete Math List at the Math Forum]. |
| | | |
− | * [http://mathforum.org/kb/plaintext.jspa?messageID=6514666 Solution posted by Jon Awbrey, working by way of logical graphs]. | + | ===Solution=== |
| + | |
| + | * [http://mathforum.org/kb/plaintext.jspa?messageID=6514666 Solution posted by Jon Awbrey, working in the medium of logical graphs]. |
| | | |
| <pre> | | <pre> |
Line 73: |
Line 77: |
| | | |
| o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o | | o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o |
| + | </pre> |
| + | |
| + | ===Discussion=== |
| + | |
| + | <pre> |
| + | o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o |
| + | |
| + | Back to the initial problem: |
| + | |
| + | * Show that ~(p <=> q) is equivalent to (~q) <=> p |
| + | |
| + | We can translate this into logical graphs by supposing that we |
| + | have to express everything in terms of negation and conjunction, |
| + | using parentheses for negation -- that is, "(x)" for "not x" -- |
| + | and simple concatenation for conjunction -- "xyz" or "x y z" |
| + | for "x and y and z". |
| + | |
| + | In this form of representation, for historical reasons called |
| + | the "existential interpretation" of logical graphs, we have |
| + | the following expressions for basic logical operations: |
| + | |
| + | The disjunction "x or y" is written "((x)(y))". |
| + | |
| + | This corresponds to the logical graph: |
| + | |
| + | x y |
| + | o o |
| + | \ / |
| + | o |
| + | | |
| + | O |
| + | |
| + | The disjunction "x or y or z" is written "((x)(y)(z))". |
| + | |
| + | This corresponds to the logical graph: |
| + | |
| + | x y z |
| + | o o o |
| + | \|/ |
| + | o |
| + | | |
| + | O |
| + | |
| + | Etc. |
| + | |
| + | The implication "x => y" is written "(x (y)), |
| + | which can be read "not x without y" if that |
| + | helps to remember the form of expression. |
| + | |
| + | This corresponds to the logical graph: |
| + | |
| + | y o |
| + | | |
| + | x o |
| + | | |
| + | O |
| + | |
| + | Thus, the equivalence "x <=> y" has to be written somewhat |
| + | inefficiently as a conjunction of to and fro implications: |
| + | "(x (y))(y (x))". |
| + | |
| + | This corresponds to the logical graph: |
| + | |
| + | y o o x |
| + | | | |
| + | x o o y |
| + | \ / |
| + | O |
| + | |
| + | Putting all the pieces together, the problem given |
| + | amounts to proving the following equation, expressed |
| + | in parse string and logical graph forms, respectively: |
| + | |
| + | * Show that ~(p <=> q) is equivalent to (~q) <=> p |
| + | |
| + | q o o p q o |
| + | | | | |
| + | p o o q o o p |
| + | \ / | | |
| + | o p o o--o q |
| + | | \ / |
| + | O = O |
| + | |
| + | ( (p (q)) (q (p)) ) = (p ( (q) )) ((p)(q)) |
| + | |
| + | No kidding ... |
| + | |
| + | o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o~~~~~~~~~o |
| </pre> | | </pre> |