|
|
Re: PREDICATE CALCULUS 2
Posted:
Nov 28, 2012 8:59 PM
|
|
On Nov 29, 8:42 am, Dan Christensen <Dan_Christen...@sympatico.ca> wrote: > > PROLOG is just the UNIFY( f1(..) , f1(...) ) > > I would love to be proven wrong, but I don't think you will get very > far in abstract mathematics using only PROLOG. If you are still > determined to used PROLOG, you might look at Norm Megill's MetaMath > program -- the gold standard of mechanized rigour IMHO. It is very > small program and, as I understand, is based entirely on making > symbolic substitutions. Your "facts" would be facts about formuala's, > not individual objects. Just maybe you can implement it in PROLOG. > Write to Norm. He will be able to advise you. He probably knows PROLOG > as well. >
Right, metamath uses Reverse Polish Notation
7 , 3 + ------- 10
and you guessed it - UNIFY() to do the matching.
...
RPN is equivalent to
A & B -> C
that is why my Inference Rules (and PROLOG CLAUSES themselves)
are of this form:
OR
if( and(X , Y ), or(X,Y) ). if( and(not(X) , not(Y) ), not(or(X,Y)) ). if( and(not(X) , Y ), or(X,Y) ). if( and(X , not(Y) ), or(X,Y) ).
TRANSITIVE IMPLICATION
if( and(if(A,B) , if(B,C)), if(A,C) ).
TRANSIVITIVE LESS THAN
if( and(less(X,Y) , less(Y,Z)) , less(X,Z) ).
etc. etc. Similar to Metamath RPN format and PROLOG CLAUSE format, same matching technique too.
But the advantage of using PROLOG is it is built for BACKWARD CHAINING.
MetaMath and DCProof are 'Natural Deduction' Logics - the Human writes the proof!
Herc
|
|