Evaluate the validity, satisfiability and entailment of logical sentences.
Technically, this code implements an interpreter performing the following steps:
- lexical analysis
- parsing of tokens into an abstract syntax tree (AST) representation
- function execution on the AST
Currently supported: expressions in propositional logic (PL)