This project implements a propositional logic resolution prover. It includes modules for parsing propositional logic formulas, converting them to Conjunctive Normal Form (CNF), and resolving them using the resolution principle.
main.py: The main module that handles command-line argument parsing and orchestrates the resolution process.parser.py: Contains functions for tokenizing and parsing propositional logic formulas.cnf_converter.py: Converts propositional logic formulas to Conjunctive Normal Form (CNF).resolver.py: Implements the resolution-based theorem proving for propositional logic.resolver_new.py: Implements the improved resolution-based theorem proving for propositional logic.test.py: Contains unit tests for the parser, CNF converter, and resolver modules.datasets/: Contains knowledge base and query files.loading_indicator.py: A simple loading indicator for the command-line interface.
To run the resolution prover, use the following command:
# Run with knowledge base and query files using default resolver
python main.py <kb_file> <query_file> [-v]
# Run with knowledge base and query files using improved resolver
python main.py <kb_file> <query_file> [-v] --resolver new
# Run only with knowledge base to check for knowledge base satisfiability
python main.py <kb_file> --no-query [-v]For detailed usage information, examples, and file format specifications, run:
python main.py -h