```Date: Jun 13, 2013 4:47 AM
Author: Graham Cooper
Subject: Re: Set Theorists use EXTENSIONALITY ..... Logic Programmers UNIFY!

On Jun 13, 5:54 pm, Jan Burse <janbu...@fastmail.fm> wrote:> Graham Cooper schrieb:>> > ~tail <- ~head>> > directly follows from>> > head <- tail>> The above cannot is contraposition, see also:http://en.wikipedia.org/wiki/Contraposition>> It cannot turn positive information only:>>     p(1).>> Into positive and negative information:>>     forall X(p(X) <-> X=1).>> The contraposition cannot add negative information.> It might only yield logical variants of the input> theory, but it might not perform some completion.>> Contraposition is also an equivalence, in classical> logic, because of double negation elimination:>>     P -> Q   =>   ~Q -> ~P>              =>   ~~P -> ~~Q>              <=>   P -> Q>> So its actualy:>>    P -> Q   <=>   ~Q -> ~P>> You can try to apply it to the fact p(1). Frist> represent the fact as it is done in Prolog:>>      p(1) <- true.>> Then apply the contraposition:>>      ~true <- ~p(1).>> No negative information added! It is still that> we cannot derive, assuming nats as domain:>>      P |- ~p(2)   /* not derivable */>> Bye>Not with that alone!Are you seriously suggesting Negation As Failure = Notand that's the end of story!There's a difference between 'the platonic universe' and computations!With computers you cast a line and wait a while and see if you got abite!"NO FISH TODAY!"  is what you tell your wife at the end of the daywhen you go home!It's the "NO!" that the PROLOG interpreter sadly responds after anexhaustive search of matching facts!You can't define the UoD with "I can't find the solution so it doesn'texist!" and continue on using that fact as "untrue".NOT() is a SET!  like SUCCESSOR() is a SET.nat( 0 ).nat( succ( N ) ) :-   nat ( N ).==========wff( 1 ).wff( not(not( F )) :-  wff( F )-----------------Try adding a SET SIZE!p(1).e( X , setp )  :-  p( X ).e( setp , singletons ).then you can get~p(2)Herc--http://phpPROLOG.comA.I. Software / Database on the Web!Powered By SQL  SELECT HEADS.id    FROM QUERY    INNER JOIN HEADS    ON QUERY.ref=HEADS.ref    AND QUERY.term=HEADS.term         DATABASE                    QUERY    id      ref     term           ref     term   ----------------------        ----------------    6       1       test1    6       2       aaa    7       1       test1   <=>    1       test1    7       2       bbb     <=>    2       bbb   ----------------------        ----------------               GOAL-AT-A-TIME UNIFY
```