packages feed

judge-0.1.3.0: README.md

judge
==============================================================================

`judge` is a modular implementation of a decision procedure for classical and 
justification logics, through a tableau-based theorem prover. 



Installation
------------------------------------------------------------------------------

`judge` can be installed through 
[Cabal](https://www.haskell.org/cabal/users-guide/):

    cabal sandbox init
    cabal install judge


A recommended alternative is to use [Stack](https://www.stackage.org/), for 
which you will need to clone the repository and do:

    stack install



Usage
-------------------------------------------------------------------------------

`judge` expects a logical system to be defined in the [YAML](http://yaml.org/) 
or [JSON](http://json.org/) format. This file will specify the type of proof 
system and the logical family (although at the moment, only the respective 
values `tableau` and `justification` are recognised). It also provides the 
rules of inference. See the [logic](logic) directory for example 
specifications.

If no target formula(s) are provided via `-g`, formulas are read off the 
standard input. If no output file is provided via `-o`, the result is written 
to the standard output. By default, the format is plain text; add `-f LaTeX` 
to obtain LaTeX code instead. 

For example, the following will construct proofs for [theorems](formulas.txt) 
of the logic [LP](logic/LP.yml) (with `c:(A→B→A) ∊ CS`), and produces a PDF 
file to visualise them:

    judge LP \
        -a "c:(A->B->A)" \
        -f LaTeX \
         < formulas.txt \
         | pdflatex



Contributing
-------------------------------------------------------------------------------

Notable missing features are detailed on the [issue 
tracker](https://github.com/slakkenhuis/judge/issues).

Contributions that extend `judge` to different logical families (modal, first 
order...) or proof systems (sequent, natural deduction...) are welcomed.