Advertisement
logicmoo

Basic Elaboration Tolerant logic

Jan 20th, 2018
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.14 KB | None | 0 0
  1. % In all my attempts to implement "elaboration tolerant logics"  I find that the only non-defeasible/monotonic inferences I ever can draw upon are based on derivatives from the contrapositive (as in Modus Tollens) of implication.  "Elaboration tolerance" in the sense means tolerate additional rules without *RE*-canonicalizing the previous rules:
  2.  
  3. First to show what I am labeling as canonicalization:  (this is not SAT so it would be unfair to call this Unit Projection)
  4.  
  5. Rule1:     (if (and a b) d)  % IKL's "if" is what logicans call implication
  6.  
  7. % We can show proof of D if we have can show a proof of A and proof of  B
  8. proved_d :- proved_a, proved_b.
  9. % We can show a proof of the falseness of A by showing proof of B and showing proof of the falseness of D
  10. proved_not_a :- proved_not_d, proved_b.
  11. % We can show a proof of the falseness of B by showing proof of A and showing proof of the falseness of D
  12. proved_not_b :- proved_not_d, proved_a.
  13.  
  14.  
  15. Rule 2: (if (and a ~b c) d)
  16.  
  17. proved_d :- proved_a, proved_not_b, proved_c.
  18. proved_not_a :- proved_not_d, proved_b, proved_c.
  19. proved_not_c :- proved_not_d, proved_b, proved_a.
  20. proved_b :- proved_not_d, proved_a, proved_c.
  21.  
  22.  
  23. For "tolerance" let us add (para)consistency:
  24.  
  25. % We can show proof of D if we *fail* to show proof of ~D
  26. % *and* can show a proof of A and proof of  B
  27. proved_d :- \+ proved_not_d,    proved_a, proved_b.
  28. % We can show a proof of the falseness of A if we have *failed* to show proof of A
  29. % *and* by showing proof of B and showing proof of the falseness of D
  30. proved_not_a :- \+ proved_a, proved_not_d, proved_b.
  31. % We can show a proof of the falseness of B if we have *failed* to show proof of B
  32. % *and* by showing proof of A and showing proof of the falseness of D
  33. proved_not_b :- \+ proved_b, proved_not_d, proved_a.
  34.  
  35.  
  36. % Rule 2: ​(if (and a ~b c) d)​
  37.  
  38. proved_d :- \+ proved_not_d, proved_a, proved_not_b, proved_c.
  39. proved_not_a :- \+ proved_a, proved_not_d, proved_b, proved_c.
  40. proved_not_c :- \+ proved_c, proved_not_d, proved_b, proved_a.
  41. proved_b :- \+ proved_not_b, proved_not_d, proved_a, proved_c.
  42.  
  43. % So far, realize we should not expect to prove anything *yet*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement