- besides top-down reasoning with
conclusion :- premiserules, eyelet also supports bottom-up reasoning withconclusion :+ premiserules - variables are interpreted universally except for
conclusion :+ premiseconclusion-only variables which are interpreted existentially - linear implication is done with
becomes(from_conjunction, to_conjunction) - bottom-up reasoning can use
stable(n)to fail if the deductive closure at levelnis not yet stable - bottom-up reasoning steps are performed as
step((conclusion :+ premise), premise_inst, conclusion_inst) - queries are posed as
true :+ premiseand answered asanswer(premise_inst) - inference fuses are defined as
false :+ premiseand blown asfuse(premise_inst)with return code 2
- conclusion can be a conjunction
- conclusion can be
falseto blow an inference fuse - conclusion can be
trueto pose a query - conclusion-only variables are existentials
- performing bottom-up proof steps
step/3 - avoiding loops that could occur with top-down reasoning
- install SWI-Prolog
- run ./test-swipl to go from ./input/ to ./output-swipl/
or
- install Trealla Prolog
- run ./test-trealla to go from ./input/ to ./output-trealla/
or
- install Scryer Prolog
- run ./test-scryer to go from ./input/ to ./output-scryer/