ND-Prover
A Fitch-style natural deduction proof generator and checker, implemented in Python.
It is based on the natural deduction system presented in forall x: Calgary.
Try ND-Prover online at ndprover.org.
Supported Logics
- Propositional logic
- First-order logic
- Modal logic (K, T, S4, S5)
- First-order modal logic
Features
- Support for both classical and intuitionistic logics
- Argument validity checking
- Automated proof generation for valid arguments
- Countermodel generation for invalid arguments
- Verification of user-provided proofs
- Plain-text and LaTeX proof export
Package Installation
ND-Prover can be installed using pip:
pip install nd-prover
or by directly cloning the git repository:
git clone https://github.com/daniyal1249/nd-prover.git
and running the following in the cloned repo:
pip install .
Package Example Usage
$ nd-prover
Select logic (TFL, FOL, MLK, MLT, MLS4, MLS5, FOMLK, FOMLT, FOMLS4, FOMLS5): TFL
Enter premises (separated by "," or ";"), or "NA" if none: P -> Q, P
Enter conclusion: Q
1 │ P → Q PR
│
2 │ P PR
├───
1 - Add a new line
2 - Begin a new subproof
3 - End the current subproof
4 - End the current subproof and begin a new one
5 - Delete the last line
Select edit: 1
Enter line: Q ; ->E, 1,2
1 │ P → Q PR
│
2 │ P PR
├───
3 │ Q →E, 1,2
Proof complete! 🎉
A proof of the law of excluded middle (LEM) using ND-Prover:
Proof of ∴ P ∨ ¬P
1 │ │ ¬(P ∨ ¬P) AS
│ ├───────────
2 │ │ │ P AS
│ │ ├───
3 │ │ │ P ∨ ¬P ∨I, 2
│ │ │
4 │ │ │ ⊥ ¬E, 1,3
│ │
5 │ │ ¬P ¬I, 2-4
│ │
6 │ │ P ∨ ¬P ∨I, 5
│ │
7 │ │ ⊥ ¬E, 1,6
│
8 │ P ∨ ¬P IP, 1-7
Proof complete! 🎉
A proof that identity is symmetric:
Proof of ∴ ∀x∀y(x = y → y = x)
1 │ │ a = b AS
│ ├───────
2 │ │ a = a =I
│ │
3 │ │ b = a =E, 1,2
│
4 │ a = b → b = a →I, 1-3
│
5 │ ∀y(a = y → y = a) ∀I, 4
│
6 │ ∀x∀y(x = y → y = x) ∀I, 5
Proof complete! 🎉
A proof in modal logic S5:
Proof of ◇☐A ∴ ☐A
1 │ ◇☐A PR
├─────
2 │ ¬☐¬☐A Def◇, 1
│
3 │ │ ¬☐A AS
│ ├─────
4 │ │ │ ☐ AS
│ │ ├───
5 │ │ │ ¬☐A R5, 3
│ │
6 │ │ ☐¬☐A ☐I, 4-5
│ │
7 │ │ ⊥ ¬E, 2,6
│
8 │ ☐A IP, 3-7
Proof complete! 🎉
Metadata
Release files for nd-prover 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nd_prover-3.1.0.tar.gz | 34.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nd_prover-3.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.3 kB
Release files / nd_prover-3.1.0.tar.gz
| Download URL | nd_prover-3.1.0.tar.gz |
|---|---|
| Size | 34.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18b02cc7714ac02eacb574018397720b527075bcd8b05dc29af787062b185303
|
|
BLAKE2b-256 checksum How to use checksums |
25e64575e89195ff55d5f782431b423081365ddcd26d754f5597ec520049f141
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Release files / nd_prover-3.1.0-py3-none-any.whl
| Download URL | nd_prover-3.1.0-py3-none-any.whl |
|---|---|
| Size | 35.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f53b667464e00c03e2906061c6459587c71f36ea34ddcf4acec61a01909ea6d
|
|
BLAKE2b-256 checksum How to use checksums |
e6a98c2922e5b906a159cb5f6977b00a8dbaac0220ecae2dcae452b5fe0642e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|