Skip to main content

Natural deduction proof generator & checker

Project description

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

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 .

Example Usage

$ nd-prover
Select logic (TFL, FOL, MLK, MLT, MLS4, MLS5, FOMLK, FOMLT, FOMLS4, FOMLS5): TFL
Enter premises (separated by ";"), 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! 🎉

Project details


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.0.0.tar.gz (18.3 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.0.0-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nd_prover-2.0.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nd_prover-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f3503b092a93d15dab5968605be87316e53c13c616e6cb0b0632d9e4b63c0818
MD5 55545d968b03a801cc7b852118575bdd
BLAKE2b-256 b877e7e257c356f10bd7f6ac6e1938c878b231820e4dbd7bbbde17be37ce8ba4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nd_prover-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nd_prover-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 940d855f12b494c7acfebb5deefdc0a532131d64e2b9874e434d7b6ad31b32f3
MD5 43175ad2c37f3ff08b4d3f376f1e93fb
BLAKE2b-256 bde4acd024bb3b5169de1fff2343b718619d21e0b452a8b09e386ecb84c6d46c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page