A collection of from-scratch, zero-dependency C implementations of propositional proof complexity theory. Each module maps to MIT and other top-tier university courses, implementing proof systems, lower-bound constructions, and SAT search algorithms in runnable C code.
| Sub-Module | Topics | Key Courses |
|---|---|---|
| mini-algebraic-proof-systems | Gröbner basis, Nullstellensatz refutations, polynomial calculus, degree lower bounds, clause-to-polynomial translation over GF(2) | MIT 6.841, Princeton COS 551 |
| mini-clique-coloring-tautologies | Clique-coloring CNF encoding, Bonet-Pitassi-Raz exponential lower bounds, monotone interpolation, size-width tradeoffs | MIT 6.841, Stanford CS254, Berkeley CS278 |
| mini-cutting-planes-proofs | Cutting Planes proof system, Chvátal-Gomory cuts, CP proof DAG, Pudlák lower bounds, pseudo-Boolean constraints | Princeton COS 551, CMU 15-855, Cambridge Part III |
| mini-frege-extended-frege | Frege systems, Extended Frege, axiom schemas, substitution, Reckhow's p-equivalence theorem, proof checking | MIT 6.841, Stanford CS358, Cambridge Part III |
| mini-pigeonhole-principle | PHP encoding (at-least-one + at-most-one), Haken's exponential resolution lower bound, width-size tradeoffs, weak PHP | MIT 6.841, Stanford CS254, Berkeley CS278 |
| mini-proof-search-algorithms | DPLL backtracking, CDCL clause learning, VSIDS branching heuristic, restarts, preprocessing, implication graph analysis | MIT 6.841, Stanford CS254, Berkeley CS278 |
| mini-resolution-lower-bounds | Resolution proof DAG, width-size tradeoffs (Ben-Sasson–Wigderson), feasible interpolation, random restrictions, proof graph analysis | MIT 6.841, Stanford CS254, Princeton COS 522 |
| mini-tseitin-formulas | Tseitin transformation (circuit→equisatisfiable CNF), Tseitin tautologies on expander graphs, Urquhart lower bounds, GF(2) linear systems | MIT 6.841, Stanford CS254, CMU 15-855, Princeton COS 551 |
- Zero external dependencies — pure C (C99/C11), only
libcandlibm - Self-contained modules — each directory has its own
Makefile,include/,src/,examples/,demos/,tests/ - Theory-to-code mapping — every module includes
docs/with course-alignment notes and proof-complexity references - Executable lower bounds — proof-size experiments, hardness analysis, and SAT solver benchmarks that run on real formulas
Each module is standalone. Navigate to a module directory and run:
cd mini-algebraic-proof-systems
make all # build everything
make test # run testsRequires GCC and GNU Make.
mini-proof-complexity/
├── mini-algebraic-proof-systems/ # Gröbner basis, Nullstellensatz, polynomial calculus
├── mini-clique-coloring-tautologies/ # Clique-coloring formulas & lower bounds
├── mini-cutting-planes-proofs/ # Cutting Planes proof system & Chvátal-Gomory cuts
├── mini-frege-extended-frege/ # Frege and Extended Frege proof systems
├── mini-pigeonhole-principle/ # PHP encoding & Haken's exponential lower bound
├── mini-proof-search-algorithms/ # DPLL, CDCL, branching heuristics, restarts
├── mini-resolution-lower-bounds/ # Resolution proof DAG, width-size tradeoffs
└── mini-tseitin-formulas/ # Tseitin transformation & expander lower bounds
MIT