- Preface
- Parsing input (SLR parser)
- Parser F# code
- Well-formed syntax
- Semantics of propositional logic
- Constructing tables
- The application

This is a project in building an application for constructing propositional truth tables.

These tables are not necessarily hard to construct by hand. Though they grow exponential in size and can at some point become overwhelming.

Truth tables can be used to proof propositions. I say this to you: "if I have a cat, then I can't find my kitchen equipment is synonymous with I do not have a cat or I can't find my kitchen equipment". You might shake your head in disbelief, but then I show you this

p | q | p ⇒ q | ¬p ∨ q | p ⇒ q ⇔ ¬ p ∨ q |

T | T | T | T | T |

F | T | T | T | T |

T | F | F | F | T |

F | F | T | T | T |

And you succumb in respect.

The idea of building a truth table evolves around the idea of a parse tree. When we have the parse tree, the rest is pretty straight forward. I have chosen a SLR parser for this project. This parser can almost be done with nothing but the tools I have build in the two past projects. So tag along if you hands are itching to build such a parser, if you are just interested in for once to hear something that is provable true, or if you have your own what ever reason to think this is something you must read.