lisp-inference
lisp-inference copied to clipboard
An Inference Engine based on Propositional Calculus written in Common Lisp
+ It should tokenize tokens first based on operations, supporting concatenated (without whitespaces) exps like this: `p^q`. + It should use a LL(1) parser + It should supports parenthesis without...
I should define a better way to print something to *output-stream* than calling `(princ-n stuff)`
It's a little cumbersome, specially the truth-table module. Beyond that I need to fix some misconceptions about handle multiple propositions and conjunctions. Mainly related to https://github.com/ryukinix/lisp-inference/blob/master/src/inferences.lisp
`p => q ~p v q`
 Possible Procedure related: https://github.com/ryukinix/lisp-inference/blob/0216fc39b6b037d6dac4c27d5bb3289d01097844/src/truth-table.lisp#L75
Whishful desires: ``` (prove :premises (list P(p => q) P(q)) :conclusion P(q)) ;; T ;;; modus ponens ```
 This occurs because my lexer it's just a split by whitespace. I need to fix that. https://github.com/ryukinix/lisp-inference/blob/3a51c46ff39af6d1ab44597b5a1d81825dadf187/web/webapp.lisp#L37-L41
I need properly treat the invalid requests and show a proper message without letting the server die.
Addiction is a typo. Doesn't refer correctly to the proper inference rule `addition`.
This algorithm should takes N premises and one conclusion and check if the conclusion is valid.