Skip to main content

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.

ND-Prover demo

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! 🎉

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-3.1.0.tar.gz (34.4 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-3.1.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file nd_prover-3.1.0.tar.gz.

File metadata

  • Download URL: nd_prover-3.1.0.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.2

File hashes

Hashes for nd_prover-3.1.0.tar.gz
Algorithm Hash digest
SHA256 18b02cc7714ac02eacb574018397720b527075bcd8b05dc29af787062b185303
MD5 a66bf4cb8951d73cf389a59375f4a330
BLAKE2b-256 25e64575e89195ff55d5f782431b423081365ddcd26d754f5597ec520049f141

See more details on using hashes here.

File details

Details for the file nd_prover-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: nd_prover-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.2

File hashes

Hashes for nd_prover-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f53b667464e00c03e2906061c6459587c71f36ea34ddcf4acec61a01909ea6d
MD5 5acb3de5157ecbeba1ac0bad85e534fd
BLAKE2b-256 e6a98c2922e5b906a159cb5f6977b00a8dbaac0220ecae2dcae452b5fe0642e5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.1.0 This release

2 files

3.0.0

2 files

2.1.0

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