ND-Prover
A Fitch-style natural deduction proof generator and checker, implemented in Python.
Supports propositional, first-order, and modal logics (K, T, S4, S5).
Try ND-Prover online at ndprover.org.
Development Roadmap
-
TFL — Propositional logic proof generator
- Public alpha
- Stable release
-
ML — Modal logic proof generator
- Public alpha
- Stable release
-
FOL — First-order logic proof generator
- Public alpha
- Stable release
-
FOML — First-order modal logic proof generator
- Public alpha
- Stable release
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! 🎉
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nd_prover-2.1.0.tar.gz.
File metadata
- Download URL: nd_prover-2.1.0.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3966efe7c3bbf04647186bec28ccb691510b5df1a53c50013770a1b34f1e0e08
|
|
| MD5 |
761e3403fa27c1c8cb02fce62eebcc98
|
|
| BLAKE2b-256 |
b903686b58aff3320f30d7bdc2e8f49b7f392eab5b26cee9304b5ab794a032d3
|
File details
Details for the file nd_prover-2.1.0-py3-none-any.whl.
File metadata
- Download URL: nd_prover-2.1.0-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccb4310087b6690e5ffad95e4e534f9aa7ffd45c4d52a98c61de980049848ad8
|
|
| MD5 |
9c9a3fe90238d4c76094ca96ab807ce9
|
|
| BLAKE2b-256 |
686746454aed1074e4e1e555e6f1040de6ff228e2f11c9e1932c8cf8ea089704
|