logical_solver

Crates.iological_solver
lib.rslogical_solver
version1.0.2
sourcesrc
created_at2023-04-18 18:15:30.543963
updated_at2023-04-18 18:15:30.543963
descriptionRust based logic parser, evaluator, and truth table constructor!
homepagehttps://github.com/antoKeinanen/logical_solver-rs
repositoryhttps://github.com/antoKeinanen/logical_solver-rs
max_upload_size
id842707
size72,484
Anto Keinänen (antoKeinanen)

documentation

README

Logical solver

Logical solver is a rust library for solving and parsing logical equations.

Supported operations

Predicate Usage
Conjunction(AND) ∧ and
Disjunction(OR) ∨ or
Negation(NOT) ¬ not
Conditional(IF...THEN) ⇒/→ =>
Biconditional(IF AND ONLY IF) ⇔/↔ <=>
Variables (for truth tables)* [A-Z]+

*Variables can be one or more capital letters.

Usage

let expr = parse_expression("true => not false or (true and false)");
let result = enumerate(expr, HashMap::new());
assert_eq!(result, true);
let vars = vec!(String::from("A"), String::from("B"))
let expr = parse_expression("A => not B");
let states = permutate(vars);
let result = solve_truth_table(expr, vars);
assert_eq!(result, [true, true, true, false]);

For full examples check /examples folder. Run them with: cargo run --example <example_name>

Commit count: 22

cargo fmt