Skip to main content

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).

ND-Prover Demo

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

nd_prover-2.1.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nd_prover-2.1.0-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

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

Hashes for nd_prover-2.1.0.tar.gz
Algorithm Hash digest
SHA256 3966efe7c3bbf04647186bec28ccb691510b5df1a53c50013770a1b34f1e0e08
MD5 761e3403fa27c1c8cb02fce62eebcc98
BLAKE2b-256 b903686b58aff3320f30d7bdc2e8f49b7f392eab5b26cee9304b5ab794a032d3

See more details on using hashes here.

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

Hashes for nd_prover-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccb4310087b6690e5ffad95e4e534f9aa7ffd45c4d52a98c61de980049848ad8
MD5 9c9a3fe90238d4c76094ca96ab807ce9
BLAKE2b-256 686746454aed1074e4e1e555e6f1040de6ff228e2f11c9e1932c8cf8ea089704

See more details on using hashes here.

Release history Release notifications | RSS feed

3.1.0

2 files

3.0.0

2 files

This release

2.1.0 This release

2 files

2.0.0

2 files

1.0.1

2 files

1.0.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page