This is a collection of projects completed for the Logic in Computer Science course, including:
- Propositional logic in Haskell (Part 1):
- Satisfiable formulas, tautologies, disjunctive normal form (DNF), DNF-based SAT solver.
- Propositional logic in Haskell (Part 2):
- Conjunctive normal form (CNF), equisatisfiable CNF (ENCF), Davis-Putnam SAT solver.
- SAT solving with Z3 in Python (Part 1):
- Generating all satisfying assignments, pebbling formulas, n-queens problem.
- SAT solving with Z3 in Python (Part 2):
- Shortest common superstring (SCS) problem, phase transitions for the k-SAT problem.
- SMT solving with Z3 in Python:
- Łoś principle, function 91, Sudoku solver.
- Intuitionistic propositional logic in Agda:
- Conjunction and disjunction proofs, de Morgan’s laws, weak Pierce’s law.
- Intuitionistic first order logic in Agda:
- Universal and existential quantifier proofs, relations.