use(subst). %use(int_lemmas). use(lemmaF3). use(lemmaF2). lemmaF2(S,K,I). /* these should be built into the variable elimination rules (s(X)= lemmaF3(var(j),s,k,l)), % step case for abstractions ((all(K,all(I,all(S,lemmaF3(t,S,K,I))))) => lemmaF3(abs(t),s,k,i)), % step case for applications all(K,all(I,(lemmaF3(t,s,K,I) and lemmaF3(u,s,K,I)))) => lemmaF3(app(t,u),s,k,i) -> []. option([var_overlaps(off),search_depth(-1),full_cnf(yes)]). %:-sama([]),sarp(+[15]),saci([2]). % 20031216 mpino2202 122.8 s :-sarp(+[15]),saci([2]). % 20031216 mpino2202 70.3 s %:-sarp(+[15]). % 20031216 mpino2202 76.7 s top_predicates_precedence([lemmaF3,lemmaF2]). /* Proof: ====== 7 : s(A)=s(B) -> A=B [input] 9 : p(s(A))=A [input] 10 : s(p(A))=A [input] 11 : A s(A)= A= subst(var(B),A,C)=var(p(B)) [input] 15 : subst(var(A),A,B)=B [input] 16 : A subst(var(A),B,C)=var(A) [input] 17 : subst(app(A,B),C,D)=app(subst(A,C,D),subst(B,C,D)) [input] 18 : subst(abs(A),B,C)=abs(subst(A,s(B),lift(C,0))) [input] 23 : free(var(A),B)==(A=B) [input] 24 : free(app(A,B),C)==(free(A,C)or free(B,C)) [input] 25 : free(abs(A),B)==free(A,s(B)) [input] 27 : A= s(A)=free(subst(A,C,B),D)<=>free(A,C)and free(B,D)or(Dfree(lift(A,B),C)<=>free(A,p(C))and BlemmaF3(var(j),s,k,l),!A,B,C.(lemmaF3(t,C,A,B))=>lemmaF3(abs(t),s,k,i),!D,E.(lemmaF3(t,s,D,E)and lemmaF3(u,s,D,E))=>lemmaF3(app(t,u),s,k,i) -> [input] 33 : A=free(lift(C,A),B)<=>free(C,p(B))and A free(lift(C,A),B)==(free(C,p(B))and Afree(subst(t,A,C),B)<=>free(t,A)and free(C,B)or(B0=free(subst(t,s(k),lift(s,0)),s(i))<=>free(t,s(k))and free(s,i)or(i0=free(subst(var(j),k,s),l)<=>j=k and free(s,l)or(lfree(subst(t,D,s),E)<=>free(t,D)and free(s,E)or(Efree(subst(u,D,s),E)<=>free(u,D)and free(s,E)or(E0=free(subst(t,k,s),i)or free(subst(u,k,s),i)<=>(free(t,k)or free(u,k))and free(s,i)or(i [reduction of 32 by [29,23,23,23,29,25,25,25,18,25,29,29,24,24,24,17,24,29,29]] 47 + p$499,0=0=free(subst(var(j),k,s),l)<=>j=k and free(s,l)or(lfree(subst(t,A,s),B)<=>free(t,A)and free(s,B)or(Bfree(subst(u,A,s),B)<=>free(u,A)and free(s,B)or(B0=free(subst(t,k,s),i)or free(subst(u,k,s),i)<=>(free(t,k)or free(u,k))and free(s,i)or(i [expansion from 46] 48 + p$499,!A,B,C.(0=free(subst(t,A,C),B)<=>free(t,A)and free(C,B)or(Bfree(subst(t,s(k),lift(s,0)),s(i))<=>free(t,s(k))and free(s,i)or(i p$499 [expansion from 46] 50 + 0= p$499,free(subst(t,B,C),A)==(free(t,B)and free(C,A)or(A0=free(subst(var(j),k,s),l)<=>j=k and free(s,l)or(l [expansion from 47] 54 + p$498,!A,B.((0=free(subst(t,A,s),B)<=>free(t,A)and free(s,B)or(Bfree(subst(u,A,s),B)<=>free(u,A)and free(s,B)or(Bfree(subst(t,k,s),i)or free(subst(u,k,s),i)<=>(free(t,k)or free(u,k))and free(s,i)or(i p$498 [expansion from 47] 56 + p$498,(0=free(subst(t,B,s),A)<=>free(t,B)and free(s,A)or(Afree(subst(u,B,s),A)<=>free(u,B)and free(s,A)or(A p$499 [expansion from 49] 58 + p$497,0= p$497 [expansion from 49] 60 + free(subst(t,s(k),lift(s,0)),s(i))=>free(t,s(k))and free(s,i)or(ifree(subst(t,s(k),lift(s,0)),s(i)) -> p$497 [expansion from 59] 61 + p$496,p$498,p$499 -> [expansion from 53] 63 + 0=free(subst(var(j),k,s),l)<=>j=k and free(s,l)or(l p$496 [expansion from 53] 64 + p$495(A,B),p$498 [expansion from 56] 65 + p$495(A,B) -> 0=free(subst(t,A,s),B)<=>free(t,A)and free(s,B)or(B 0=free(subst(u,A,s),B)<=>free(u,A)and free(s,B)or(B free(subst(t,A,s),B)==(free(t,A)and free(s,B)or(B A<0,B<0,free(subst(t,A,s),B)==(free(t,A)and free(s,B)or(B free(subst(u,A,s),B)==(free(u,A)and free(s,B)or(B A<0,B<0,free(subst(u,A,s),B)==(free(u,A)and free(s,B)or(B p$498 [expansion from 55] 74 + p$494,0= p$494 [expansion from 55] 76 + free(subst(t,k,s),i)or free(subst(u,k,s),i)=>(free(t,k)or free(u,k))and free(s,i)or(ifree(subst(t,k,s),i)or free(subst(u,k,s),i) -> p$494 [expansion from 75] 77 + p$493,p$497 [expansion from 58] 78 + p$493 -> 0= 0=free(subst(t,s(k),lift(s,0)),s(i)) -> p$497 [expansion from 60] 81 + p$492,free(subst(t,s(k),lift(s,0)),s(i)) [expansion from 60] 82 + free(t,s(k))and free(s,i)or(i p$492 [expansion from 60] 83 + p$491 -> p$496 [expansion from 63] 85 + free(subst(var(j),k,s),l)==(j=k and free(s,l)or(l p$491 [expansion from 63] 86 + free(subst(var(j),k,s),l)=>j=k and free(s,l)or(lfree(subst(var(j),k,s),l) -> p$491 [expansion from 85] 87 + p$493,p$494 [expansion from 74] 88 + p$490,(free(t,k)or free(u,k))and free(s,i)or(ifree(subst(t,k,s),i)or free(subst(u,k,s),i) -> p$494 [expansion from 76] 89 + p$490,free(subst(t,k,s),i)or free(subst(u,k,s),i) [expansion from 76] 90 + (free(t,k)or free(u,k))and free(s,i)or(i p$490 [expansion from 76] 91 + p$490,free(subst(t,k,s),i),free(subst(u,k,s),i) [expansion from 89] 92 + p$489,p$492 -> p$497 [expansion from 80] 93 + p$489,free(t,s(k))and free(s,i)or(i p$489 [expansion from 80] 95 + p$489,free(t,s(k))and free(s,i),i p$492 [expansion from 82] 97 + free(t,s(k))and free(s,i) -> p$488 [expansion from 82] 98 + i p$488 [expansion from 82] 99 + free(t,s(k)),free(s,i) -> p$488 [expansion from 97] 103 + p$486,j=k and free(s,l)or(lfree(subst(var(j),k,s),l) -> p$491 [expansion from 86] 104 + p$486,free(subst(var(j),k,s),l) [expansion from 86] 105 + j=k and free(s,l)or(l p$486 [expansion from 86] 106 + p$485,p$490 -> p$494 [expansion from 88] 107 + p$485,(free(t,k)or free(u,k))and free(s,i)or(i p$485 [expansion from 88] 109 + p$485,(free(t,k)or free(u,k))and free(s,i),i p$490 [expansion from 90] 111 + (free(t,k)or free(u,k))and free(s,i) -> p$484 [expansion from 90] 112 + i p$484 [expansion from 90] 113 + free(t,k)or free(u,k),free(s,i) -> p$484 [expansion from 111] 114 + p$483,p$489,i k= free(t,s(s(i))) [expansion from 95] 117 + p$482 -> p$488 [expansion from 98] 118 + i p$482 [expansion from 98] 119 + k= p$482 [expansion from 98] 120 + i p$482 [expansion from 118] 121 + free(t,s(i)) -> k= p$482 [expansion from 119] 123 + free(t,s(s(i))) -> i p$491 [expansion from 103] 125 + p$481,j=k and free(s,l)or(l p$481 [expansion from 103] 127 + p$481,j=k and free(s,l),l p$486 [expansion from 105] 129 + j=k and free(s,l) -> p$480 [expansion from 105] 130 + l p$480 [expansion from 105] 131 + j=k,free(s,l) -> p$480 [expansion from 129] 132 + p$479,p$485,i k= free(t,s(i))or free(u,s(i)) [expansion from 109] 135 + p$479 -> free(t,s(i)),free(u,s(i)) [expansion from 134] 136 + p$478 -> p$485 [expansion from 108] 137 + free(subst(t,k,s),i) -> p$478 [expansion from 108] 138 + free(subst(u,k,s),i) -> p$478 [expansion from 108] 139 + p$477,free(s,i) -> p$484 [expansion from 113] 140 + free(t,k) -> p$477 [expansion from 113] 141 + free(u,k) -> p$477 [expansion from 113] 142 + p$476 -> p$484 [expansion from 112] 143 + i p$476 [expansion from 112] 144 + k= p$476 [expansion from 112] 145 + i p$476 [expansion from 143] 146 + free(t,i)or free(u,i) -> k= p$476 [expansion from 144] 148 + free(t,s(i))or free(u,s(i)) -> i free(t,s(k)) [expansion from 114] 151 + p$475 -> free(s,i) [expansion from 114] 152 + p$474,p$481,l j=k [expansion from 127] 154 + p$474 -> free(s,l) [expansion from 127] 155 + p$473 -> p$480 [expansion from 130] 156 + l p$473 [expansion from 130] 157 + k= p$473 [expansion from 130] 158 + l p$473 [expansion from 156] 159 + j=l -> k= k= p$473 [expansion from 157] 162 + j=s(l) -> l free(t,k)or free(u,k) [expansion from 132] 165 + p$472 -> free(s,i) [expansion from 132] 166 + p$472 -> free(t,k),free(u,k) [expansion from 164] 167 + p$471 -> k= p$471 [expansion from 146] 169 + free(u,i) -> p$471 [expansion from 146] 170 + p$470 -> i p$470 [expansion from 148] 172 + free(u,s(i)) -> p$470 [expansion from 148] 173 + p$469,p$489,p$483,p$475 [expansion from 149] 174 + p$469 -> i free(t,s(i)) [expansion from 149] 176 + p$468,p$481,p$474,l k= j=s(l) [expansion from 152] 179 + p$467,p$485,p$479,p$472 [expansion from 163] 180 + p$467 -> i free(t,i)or free(u,i) [expansion from 163] 182 + p$467 -> free(t,i),free(u,i) [expansion from 181] 183 + p$466,p$481,p$474,p$468 [expansion from 176] 184 + p$466 -> l j=l [expansion from 176] 186 + p$497,0= k= p$481,k= p$481,k= j= p$481,j= p$486,p$480 [negative chaining of 229 from 131] 241 + free(subst(var(j),j,s),l),p$486,p$486 [chaining of 229 from 104] 246 + free(s,l) -> p$486 [reduction of 235 by [128,L]] 247 + free(subst(var(j),j,s),l),p$486 [condensement of 241] 248 + p$486 [reduction of 247 by [15,246,L]] 249 + p$481 -> p$491 [reduction of 124 by [248]] 250 + p$481,p$474,p$468,l p$481,p$481 [negative chaining of 327 from 126] 346 + free(subst(var(j),j,s),l) -> p$481 [condensement of 337] 347 + p$481 [reduction of 346 by [15,328]] 349 + p$491 [reduction of 249 by [347]] 351 + p$496 [reduction of 83 by [349]] 352 + p$499,p$498 -> [reduction of 61 by [351]] 353 + free(t,k)and free(s,i)or(i k<0,i<0,p$478 [negative chaining of 69 from 137] 354 + free(u,k)and free(s,i)or(i k<0,i<0,p$478 [negative chaining of 72 from 138] 355 + p$495(k,i) -> free(u,k)and free(s,i)or(i free(u,k)and free(s,i)or(i k<0,i<0,p$490,free(u,k)and free(s,i),free(t,k)and free(s,i),i p$465,k<0,i<0,p$490,free(t,k)and free(s,i),i k= free(u,s(i)) [expansion from 357] 361 + p$495(k,i) -> p$464,p$465,k<0,i<0,p$490,i free(u,k) [expansion from 358] 363 + p$464 -> free(s,i) [expansion from 358] 364 + p$495(k,i) -> p$463,p$464,p$465,k<0,i<0,p$490,i i free(u,i) [expansion from 361] 367 + p$495(k,i) -> p$462,p$463,p$464,p$465,k<0,i<0,p$490,i k= free(t,s(i)) [expansion from 364] 370 + p$495(k,i) -> p$461,p$462,p$463,p$464,p$465,k<0,i<0,p$490,i free(t,k) [expansion from 367] 372 + p$461 -> free(s,i) [expansion from 367] 373 + p$495(k,i) -> p$460,p$461,p$462,p$463,p$464,p$465,k<0,i<0,p$490 [expansion from 370] 374 + p$460 -> i free(t,i) [expansion from 370] 376 + p$498,p$460,p$461,p$462,p$463,p$464,p$465,k<0,i<0,p$490 [negative chaining of 64 from 373] 377 + p$498,p$460,p$461,p$462,p$463,p$464,p$465,p$490 [reduction of 376 by [189,73,L,L,188,73,L,L]] 378 + p$498,p$461,p$462,p$463,p$464,p$465,p$490,i p$462,p$471,p$490,p$465,p$463,p$498,p$484 [negative chaining of 384 from 139] 386 + p$477 -> p$462,p$471,p$490,p$465,p$463,p$498 [reduction of 385 by [110,L]] 387 + p$498,p$464,p$465,p$490,p$471,p$463,p$462,p$477 [negative chaining of 382 from 140] 388 + p$462,p$463,p$471,p$490,p$465,p$464,p$498 [reduction of 387 by [386]] 389 + p$463,p$471,p$490,p$465,p$464,p$498,k= p$490,p$498,p$471,p$465,p$463,k= p$498,p$490,p$471,p$470,p$465,p$484 [negative chaining of 404 from 139] 457 + p$498,p$490,p$471,p$470,p$465 [reduction of 456 by [443,110,L]] 459 + p$498,p$490,p$471,p$470,free(u,s(i)) [negative chaining of 457 from 360] 460 + p$498,p$490,p$471,p$470 [reduction of 459 by [172,L]] 461 + p$498,p$490,p$471,i k<0,i<0,p$478 [expansion from 353] 500 + free(t,k)and free(s,i) -> p$459 [expansion from 353] 501 + i p$459 [expansion from 353] 502 + free(t,k),free(s,i) -> p$459 [expansion from 500] 503 + p$458,p$495(k,i) -> k<0,i<0,p$478 [expansion from 354] 504 + free(u,k)and free(s,i) -> p$458 [expansion from 354] 505 + i p$458 [expansion from 354] 506 + free(u,k),free(s,i) -> p$458 [expansion from 504] 507 + p$457 -> p$459 [expansion from 501] 508 + i p$457 [expansion from 501] 509 + k= p$457 [expansion from 501] 510 + i p$457 [expansion from 508] 511 + free(t,i) -> k= p$457 [expansion from 509] 513 + free(t,s(i)) -> i p$458 [expansion from 505] 515 + i p$456 [expansion from 505] 516 + k= p$456 [expansion from 505] 517 + i p$456 [expansion from 515] 518 + free(u,i) -> k= p$456 [expansion from 516] 520 + free(u,s(i)) -> i p$498,p$478,k<0,i<0 [negative chaining of 64 from 499] 528 + p$459 -> p$498 [reduction of 527 by [136,106,73,L,498,L,L,189,73,L,L,188,73,L,L]] 529 + p$458 -> p$498,p$478,k<0,i<0 [negative chaining of 64 from 503] 530 + p$458 -> p$498 [reduction of 529 by [136,106,73,L,498,L,L,189,73,L,L,188,73,L,L]] 532 + p$485,p$479,p$472,free(t,i),k= [reduction of 352 by [576]] 578 + free(subst(t,A,B),C)==(free(t,A)and free(B,C)or(C [reduction of 57 by [577,L]] 580 + p$489,p$492 -> [reduction of 92 by [579,L]] 582 + 0= free(t,s(k))and(free(s,i)and 0 free(t,s(k))and(free(s,i)and 0 s(k)= free(t,s(s(i))) [expansion from 597] 601 + p$453,p$492,p$454,s(i) free(t,s(k)) [expansion from 598] 603 + p$453 -> free(s,i)and 0 free(s,i)and 0 s(i) free(t,s(i)) [expansion from 601] 608 + p$492,p$454,p$453,s(i) p$492,p$454,p$488 [negative chaining of 622 from 99] 625 + free(s,i) -> p$492,p$454 [reduction of 624 by [96,L]] 627 + p$492,p$454,free(s,s(i))and s(i)<0,free(s,i)and 0 s(i)<0 [expansion from 629] 633 + p$451 -> [reduction of 632 by [11,582,L]] 634 + p$454,p$492 [reduction of 630 by [633,L]] 635 + p$492,s(k)= s(k)=s(i),k p$492,k [reduction of 580 by [657]] 659 + free(t,s(k))and(free(s,i)and 0 [reduction of 94 by [578,11,583,L,11,582,L,45,11,582,L,9,658,L]] 661 + free(t,s(i)),p$475,p$483 [reduction of 194 by [658,L]] 662 + i [expansion from 659] 664 + s(i) [expansion from 659] 665 + free(t,s(k)),free(s,i)and 0 [expansion from 663] 666 + s(i) [expansion from 664] 667 + s(k)= [expansion from 664] 668 + s(i) [expansion from 666] 669 + free(t,s(i)) -> s(k)= [expansion from 667] 671 + free(t,s(s(i))) -> s(i) p$483,p$482 [negative chaining of 682 from 665] 693 + 0 p$482,p$483 [reduction of 692 by [681,L]] 695 + 0 p$450 [expansion from 693] 697 + s(i)=<0,p$450 [totality resolution from 695] 698 + p$450,s(i)=0 [reduction of 697 by [11,582]] 701 + i<0,p$450 [chaining of 11 from 698] 720 + p$450 [reduction of 701 by [582,L]] 749 + p$475,p$483,p$483,p$475 [chaining of 662 from 680] 755 + p$483,p$475 [condensement of 749] 758 + p$483,free(s,i) [negative chaining of 755 from 151] 759 + p$483,free(t,s(k)) [negative chaining of 755 from 150] 760 + free(s,i)and 0 p$483 [negative chaining of 759 from 665] 762 + 0 p$483 [reduction of 760 by [758,L]] 764 + p$450 -> p$483 [expansion from 762] 765 + p$483 [reduction of 764 by [720]] 766 + k=