propositional_logic 0.1.0

generate truth tables for compound propositions
Documentation

Propositional Logic

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

only has one dependency: cli_table

Usage

use propositional_logic::prelude::*;

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

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

println!();

// or inline
print_truth_table!(inline_compound_proposition => |p, q, r| {
   iff(q, (p && !q) || (!p && q)) && r
})

Outputs:

+-------+-------+-------+----------------------+
| 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     | inline_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 |
+-------+-------+-------+-----------------------------+