Propositional Logic

A rust library for generating the truth table of any single compound proposition.

only has one dependency: cli_table

Usage

```rust use propositional_logic::prelude::*;

let compound_proposition = |p, q, r| -> bool { iff(q, (p && !q) || (!p && q)) && r };

printtruthtable!(|p, q, r| => compound_proposition);

println!();

// or inline printtruthtable!(inlinecompoundproposition => |p, q, r| { iff(q, (p && !q) || (!p && q)) && r }) ```

Outputs:

```text +-------+-------+-------+----------------------+ | p | q | r | compound_proposition | +-------+-------+-------+----------------------+ | true | true | true | false | +-------+-------+-------+----------------------+ | true | true | false | false | +-------+-------+-------+----------------------+ | true | false | true | false | +-------+-------+-------+----------------------+ | true | false | false | false | +-------+-------+-------+----------------------+ | false | true | true | true | +-------+-------+-------+----------------------+ | false | true | false | false | +-------+-------+-------+----------------------+ | false | false | true | true | +-------+-------+-------+----------------------+ | false | false | false | false | +-------+-------+-------+----------------------+

+-------+-------+-------+-----------------------------+ | p | q | r | inlinecompoundproposition | +-------+-------+-------+-----------------------------+ | true | true | true | false | +-------+-------+-------+-----------------------------+ | true | true | false | false | +-------+-------+-------+-----------------------------+ | true | false | true | false | +-------+-------+-------+-----------------------------+ | true | false | false | false | +-------+-------+-------+-----------------------------+ | false | true | true | true | +-------+-------+-------+-----------------------------+ | false | true | false | false | +-------+-------+-------+-----------------------------+ | false | false | true | true | +-------+-------+-------+-----------------------------+ | false | false | false | false | +-------+-------+-------+-----------------------------+ ```