(Work in progress) A proof checker for natural deduction proofs written in Fitch notation
- English letters: propositon variables
- Greek letters: well-formed formula
-
$\land$ : conjunction, logical and. -
$\lor$ : disjunction, logical or. -
$\lnot$ : negation, logical not. -
$\to$ : implication. -
$\vdash$ : syntactic consequence, proves. -
$\vDash$ : semantic consequence, entails.
Basic rules:
Introduction rule | Elimination rule | |
---|---|---|
Conjunction |
|
|
Disjunction |
|
$\dfrac{\begin{matrix}\ \ \phi \lor \psi\end{matrix}\quad \begin{bmatrix}\phi \ \vdots \ \chi\end{bmatrix}\quad \begin{bmatrix}\psi \ \vdots \ \chi\end{bmatrix}}{\chi}\ \lor_e$ |
Implication |
$\dfrac{\begin{bmatrix}\phi \ \vdots \ \psi\end{bmatrix}}{\phi \to \psi}\ \to_i$ | |
Negation |
$\dfrac{\begin{bmatrix}\phi \ \vdots \ \bot\end{bmatrix}}{\lnot\phi}\ \lnot_i$ | Not Applicable |
Double Negation |
||
Bottom |
Derived rules:
rule name | formulation |
---|---|
modus tollens | |
proof by contradiction | $\dfrac{\begin{bmatrix}\phi \ \vdots \ \bot\end{bmatrix}}{\lnot\phi}\ \text{PBC}$ |
law of exccluded middle |
- use exercises in logic in computer science as tests to validate the correctness of this checker
- test whether the checker does reject typical invalid proofs
- support referencing proved statements in parent blocks
- implement a DSL for writing proofs
- enable named atomic propositions
- test proof parser
Provided under the GPL v3 license.
@book{huth2004logic,
title={Logic in Computer Science: Modelling and reasoning about systems},
author={Huth, Michael and Ryan, Mark},
year={2004},
publisher={Cambridge university press}
}