%------------------------------------------------------------------------------ % File : Otter---3.3 % Problem : NUM431+1 : TPTP v8.1.0. Released v4.0.0. % Transfm : none % Format : tptp:raw % Command : otter-tptp-script %s % Computer : n017.cluster.edu % Model : x86_64 x86_64 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz % Memory : 8042.1875MB % OS : Linux 3.10.0-693.el7.x86_64 % CPULimit : 300s % WCLimit : 300s % DateTime : Wed Jul 27 13:08:19 EDT 2022 % Result : Unknown 58.74s 58.99s % Output : None % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----No solution output by system %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.06/0.11 % Problem : NUM431+1 : TPTP v8.1.0. Released v4.0.0. % 0.06/0.12 % Command : otter-tptp-script %s % 0.12/0.33 % Computer : n017.cluster.edu % 0.12/0.33 % Model : x86_64 x86_64 % 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.12/0.33 % Memory : 8042.1875MB % 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64 % 0.12/0.33 % CPULimit : 300 % 0.12/0.33 % WCLimit : 300 % 0.12/0.33 % DateTime : Wed Jul 27 09:11:48 EDT 2022 % 0.12/0.33 % CPUTime : % 1.87/2.06 ----- Otter 3.3f, August 2004 ----- % 1.87/2.06 The process was started by sandbox on n017.cluster.edu, % 1.87/2.06 Wed Jul 27 09:11:48 2022 % 1.87/2.06 The command was "./otter". The process ID is 8266. % 1.87/2.06 % 1.87/2.06 set(prolog_style_variables). % 1.87/2.06 set(auto). % 1.87/2.06 dependent: set(auto1). % 1.87/2.06 dependent: set(process_input). % 1.87/2.06 dependent: clear(print_kept). % 1.87/2.06 dependent: clear(print_new_demod). % 1.87/2.06 dependent: clear(print_back_demod). % 1.87/2.06 dependent: clear(print_back_sub). % 1.87/2.06 dependent: set(control_memory). % 1.87/2.06 dependent: assign(max_mem, 12000). % 1.87/2.06 dependent: assign(pick_given_ratio, 4). % 1.87/2.06 dependent: assign(stats_level, 1). % 1.87/2.06 dependent: assign(max_seconds, 10800). % 1.87/2.06 clear(print_given). % 1.87/2.06 % 1.87/2.06 formula_list(usable). % 1.87/2.06 all A (A=A). % 1.87/2.06 all W0 (aInteger0(W0)->$T). % 1.87/2.06 aInteger0(sz00). % 1.87/2.06 aInteger0(sz10). % 1.87/2.06 all W0 (aInteger0(W0)->aInteger0(smndt0(W0))). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)->aInteger0(sdtpldt0(W0,W1))). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)->aInteger0(sdtasdt0(W0,W1))). % 1.87/2.06 all W0 W1 W2 (aInteger0(W0)&aInteger0(W1)&aInteger0(W2)->sdtpldt0(W0,sdtpldt0(W1,W2))=sdtpldt0(sdtpldt0(W0,W1),W2)). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)->sdtpldt0(W0,W1)=sdtpldt0(W1,W0)). % 1.87/2.06 all W0 (aInteger0(W0)->sdtpldt0(W0,sz00)=W0&W0=sdtpldt0(sz00,W0)). % 1.87/2.06 all W0 (aInteger0(W0)->sdtpldt0(W0,smndt0(W0))=sz00&sz00=sdtpldt0(smndt0(W0),W0)). % 1.87/2.06 all W0 W1 W2 (aInteger0(W0)&aInteger0(W1)&aInteger0(W2)->sdtasdt0(W0,sdtasdt0(W1,W2))=sdtasdt0(sdtasdt0(W0,W1),W2)). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)->sdtasdt0(W0,W1)=sdtasdt0(W1,W0)). % 1.87/2.06 all W0 (aInteger0(W0)->sdtasdt0(W0,sz10)=W0&W0=sdtasdt0(sz10,W0)). % 1.87/2.06 all W0 W1 W2 (aInteger0(W0)&aInteger0(W1)&aInteger0(W2)->sdtasdt0(W0,sdtpldt0(W1,W2))=sdtpldt0(sdtasdt0(W0,W1),sdtasdt0(W0,W2))&sdtasdt0(sdtpldt0(W0,W1),W2)=sdtpldt0(sdtasdt0(W0,W2),sdtasdt0(W1,W2))). % 1.87/2.06 all W0 (aInteger0(W0)->sdtasdt0(W0,sz00)=sz00&sz00=sdtasdt0(sz00,W0)). % 1.87/2.06 all W0 (aInteger0(W0)->sdtasdt0(smndt0(sz10),W0)=smndt0(W0)&smndt0(W0)=sdtasdt0(W0,smndt0(sz10))). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)-> (sdtasdt0(W0,W1)=sz00->W0=sz00|W1=sz00)). % 1.87/2.06 all W0 (aInteger0(W0)-> (all W1 (aDivisorOf0(W1,W0)<->aInteger0(W1)&W1!=sz00& (exists W2 (aInteger0(W2)&sdtasdt0(W1,W2)=W0))))). % 1.87/2.06 all W0 W1 W2 (aInteger0(W0)&aInteger0(W1)&aInteger0(W2)&W2!=sz00-> (sdte_qdtlpzmzozddtrp0(W0,W1,W2)<->aDivisorOf0(W2,sdtpldt0(W0,smndt0(W1))))). % 1.87/2.06 all W0 W1 (aInteger0(W0)&aInteger0(W1)&W1!=sz00->sdte_qdtlpzmzozddtrp0(W0,W0,W1)). % 1.87/2.06 all W0 W1 W2 (aInteger0(W0)&aInteger0(W1)&aInteger0(W2)&W2!=sz00-> (sdte_qdtlpzmzozddtrp0(W0,W1,W2)->sdte_qdtlpzmzozddtrp0(W1,W0,W2))). % 1.87/2.06 aInteger0(xa). % 1.87/2.06 aInteger0(xb). % 1.87/2.06 aInteger0(xq). % 1.87/2.06 xq!=sz00. % 1.87/2.06 aInteger0(xc). % 1.87/2.06 sdte_qdtlpzmzozddtrp0(xa,xb,xq). % 1.87/2.06 sdte_qdtlpzmzozddtrp0(xb,xc,xq). % 1.87/2.06 aInteger0(xn). % 1.87/2.06 sdtasdt0(xq,xn)=sdtpldt0(xa,smndt0(xb)). % 1.87/2.06 aInteger0(xm). % 1.87/2.06 sdtasdt0(xq,xm)=sdtpldt0(xb,smndt0(xc)). % 1.87/2.06 sdtasdt0(xq,sdtpldt0(xn,xm))!=sdtpldt0(xa,smndt0(xc)). % 1.87/2.06 end_of_list. % 1.87/2.06 % 1.87/2.06 -------> usable clausifies to: % 1.87/2.06 % 1.87/2.06 list(usable). % 1.87/2.06 0 [] A=A. % 1.87/2.06 0 [] -aInteger0(W0)|$T. % 1.87/2.06 0 [] aInteger0(sz00). % 1.87/2.06 0 [] aInteger0(sz10). % 1.87/2.06 0 [] -aInteger0(W0)|aInteger0(smndt0(W0)). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|aInteger0(sdtpldt0(W0,W1)). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|aInteger0(sdtasdt0(W0,W1)). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|sdtpldt0(W0,sdtpldt0(W1,W2))=sdtpldt0(sdtpldt0(W0,W1),W2). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|sdtpldt0(W0,W1)=sdtpldt0(W1,W0). % 1.87/2.06 0 [] -aInteger0(W0)|sdtpldt0(W0,sz00)=W0. % 1.87/2.06 0 [] -aInteger0(W0)|W0=sdtpldt0(sz00,W0). % 1.87/2.06 0 [] -aInteger0(W0)|sdtpldt0(W0,smndt0(W0))=sz00. % 1.87/2.06 0 [] -aInteger0(W0)|sz00=sdtpldt0(smndt0(W0),W0). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|sdtasdt0(W0,sdtasdt0(W1,W2))=sdtasdt0(sdtasdt0(W0,W1),W2). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|sdtasdt0(W0,W1)=sdtasdt0(W1,W0). % 1.87/2.06 0 [] -aInteger0(W0)|sdtasdt0(W0,sz10)=W0. % 1.87/2.06 0 [] -aInteger0(W0)|W0=sdtasdt0(sz10,W0). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|sdtasdt0(W0,sdtpldt0(W1,W2))=sdtpldt0(sdtasdt0(W0,W1),sdtasdt0(W0,W2)). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|sdtasdt0(sdtpldt0(W0,W1),W2)=sdtpldt0(sdtasdt0(W0,W2),sdtasdt0(W1,W2)). % 1.87/2.06 0 [] -aInteger0(W0)|sdtasdt0(W0,sz00)=sz00. % 1.87/2.06 0 [] -aInteger0(W0)|sz00=sdtasdt0(sz00,W0). % 1.87/2.06 0 [] -aInteger0(W0)|sdtasdt0(smndt0(sz10),W0)=smndt0(W0). % 1.87/2.06 0 [] -aInteger0(W0)|smndt0(W0)=sdtasdt0(W0,smndt0(sz10)). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|sdtasdt0(W0,W1)!=sz00|W0=sz00|W1=sz00. % 1.87/2.06 0 [] -aInteger0(W0)| -aDivisorOf0(W1,W0)|aInteger0(W1). % 1.87/2.06 0 [] -aInteger0(W0)| -aDivisorOf0(W1,W0)|W1!=sz00. % 1.87/2.06 0 [] -aInteger0(W0)| -aDivisorOf0(W1,W0)|aInteger0($f1(W0,W1)). % 1.87/2.06 0 [] -aInteger0(W0)| -aDivisorOf0(W1,W0)|sdtasdt0(W1,$f1(W0,W1))=W0. % 1.87/2.06 0 [] -aInteger0(W0)|aDivisorOf0(W1,W0)| -aInteger0(W1)|W1=sz00| -aInteger0(W2)|sdtasdt0(W1,W2)!=W0. % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|W2=sz00| -sdte_qdtlpzmzozddtrp0(W0,W1,W2)|aDivisorOf0(W2,sdtpldt0(W0,smndt0(W1))). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|W2=sz00|sdte_qdtlpzmzozddtrp0(W0,W1,W2)| -aDivisorOf0(W2,sdtpldt0(W0,smndt0(W1))). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)|W1=sz00|sdte_qdtlpzmzozddtrp0(W0,W0,W1). % 1.87/2.06 0 [] -aInteger0(W0)| -aInteger0(W1)| -aInteger0(W2)|W2=sz00| -sdte_qdtlpzmzozddtrp0(W0,W1,W2)|sdte_qdtlpzmzozddtrp0(W1,W0,W2). % 1.87/2.06 0 [] aInteger0(xa). % 1.87/2.06 0 [] aInteger0(xb). % 1.87/2.06 0 [] aInteger0(xq). % 1.87/2.06 0 [] xq!=sz00. % 1.87/2.06 0 [] aInteger0(xc). % 1.87/2.07 0 [] sdte_qdtlpzmzozddtrp0(xa,xb,xq). % 1.87/2.07 0 [] sdte_qdtlpzmzozddtrp0(xb,xc,xq). % 1.87/2.07 0 [] aInteger0(xn). % 1.87/2.07 0 [] sdtasdt0(xq,xn)=sdtpldt0(xa,smndt0(xb)). % 1.87/2.07 0 [] aInteger0(xm). % 1.87/2.07 0 [] sdtasdt0(xq,xm)=sdtpldt0(xb,smndt0(xc)). % 1.87/2.07 0 [] sdtasdt0(xq,sdtpldt0(xn,xm))!=sdtpldt0(xa,smndt0(xc)). % 1.87/2.07 end_of_list. % 1.87/2.07 % 1.87/2.07 SCAN INPUT: prop=0, horn=0, equality=1, symmetry=0, max_lits=6. % 1.87/2.07 % 1.87/2.07 This ia a non-Horn set with equality. The strategy will be % 1.87/2.07 Knuth-Bendix, ordered hyper_res, factoring, and unit % 1.87/2.07 deletion, with positive clauses in sos and nonpositive % 1.87/2.07 clauses in usable. % 1.87/2.07 % 1.87/2.07 dependent: set(knuth_bendix). % 1.87/2.07 dependent: set(anl_eq). % 1.87/2.07 dependent: set(para_from). % 1.87/2.07 dependent: set(para_into). % 1.87/2.07 dependent: clear(para_from_right). % 1.87/2.07 dependent: clear(para_into_right). % 1.87/2.07 dependent: set(para_from_vars). % 1.87/2.07 dependent: set(eq_units_both_ways). % 1.87/2.07 dependent: set(dynamic_demod_all). % 1.87/2.07 dependent: set(dynamic_demod). % 1.87/2.07 dependent: set(order_eq). % 1.87/2.07 dependent: set(back_demod). % 1.87/2.07 dependent: set(lrpo). % 1.87/2.07 dependent: set(hyper_res). % 1.87/2.07 dependent: set(unit_deletion). % 1.87/2.07 dependent: set(factor). % 1.87/2.07 % 1.87/2.07 ------------> process usable: % 1.87/2.07 ** KEPT (pick-wt=5): 1 [] -aInteger0(A)|aInteger0(smndt0(A)). % 1.87/2.07 ** KEPT (pick-wt=8): 2 [] -aInteger0(A)| -aInteger0(B)|aInteger0(sdtpldt0(A,B)). % 1.87/2.07 ** KEPT (pick-wt=8): 3 [] -aInteger0(A)| -aInteger0(B)|aInteger0(sdtasdt0(A,B)). % 1.87/2.07 ** KEPT (pick-wt=17): 5 [copy,4,flip.4] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|sdtpldt0(sdtpldt0(A,B),C)=sdtpldt0(A,sdtpldt0(B,C)). % 1.87/2.07 ** KEPT (pick-wt=11): 6 [] -aInteger0(A)| -aInteger0(B)|sdtpldt0(A,B)=sdtpldt0(B,A). % 1.87/2.07 ** KEPT (pick-wt=7): 7 [] -aInteger0(A)|sdtpldt0(A,sz00)=A. % 1.87/2.07 ** KEPT (pick-wt=7): 9 [copy,8,flip.2] -aInteger0(A)|sdtpldt0(sz00,A)=A. % 1.87/2.07 ** KEPT (pick-wt=8): 10 [] -aInteger0(A)|sdtpldt0(A,smndt0(A))=sz00. % 1.87/2.07 ** KEPT (pick-wt=8): 12 [copy,11,flip.2] -aInteger0(A)|sdtpldt0(smndt0(A),A)=sz00. % 1.87/2.07 ** KEPT (pick-wt=17): 14 [copy,13,flip.4] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|sdtasdt0(sdtasdt0(A,B),C)=sdtasdt0(A,sdtasdt0(B,C)). % 1.87/2.07 ** KEPT (pick-wt=11): 15 [] -aInteger0(A)| -aInteger0(B)|sdtasdt0(A,B)=sdtasdt0(B,A). % 1.87/2.07 ** KEPT (pick-wt=7): 16 [] -aInteger0(A)|sdtasdt0(A,sz10)=A. % 1.87/2.07 ** KEPT (pick-wt=7): 18 [copy,17,flip.2] -aInteger0(A)|sdtasdt0(sz10,A)=A. % 1.87/2.07 ** KEPT (pick-wt=19): 20 [copy,19,flip.4] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|sdtpldt0(sdtasdt0(A,B),sdtasdt0(A,C))=sdtasdt0(A,sdtpldt0(B,C)). % 1.87/2.07 ** KEPT (pick-wt=19): 22 [copy,21,flip.4] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|sdtpldt0(sdtasdt0(A,C),sdtasdt0(B,C))=sdtasdt0(sdtpldt0(A,B),C). % 1.87/2.07 ** KEPT (pick-wt=7): 23 [] -aInteger0(A)|sdtasdt0(A,sz00)=sz00. % 1.87/2.07 ** KEPT (pick-wt=7): 25 [copy,24,flip.2] -aInteger0(A)|sdtasdt0(sz00,A)=sz00. % 1.87/2.07 ** KEPT (pick-wt=9): 26 [] -aInteger0(A)|sdtasdt0(smndt0(sz10),A)=smndt0(A). % 1.87/2.07 ** KEPT (pick-wt=9): 27 [] -aInteger0(A)|smndt0(A)=sdtasdt0(A,smndt0(sz10)). % 1.87/2.07 ** KEPT (pick-wt=15): 28 [] -aInteger0(A)| -aInteger0(B)|sdtasdt0(A,B)!=sz00|A=sz00|B=sz00. % 1.87/2.07 ** KEPT (pick-wt=7): 29 [] -aInteger0(A)| -aDivisorOf0(B,A)|aInteger0(B). % 1.87/2.07 ** KEPT (pick-wt=8): 30 [] -aInteger0(A)| -aDivisorOf0(B,A)|B!=sz00. % 1.87/2.07 ** KEPT (pick-wt=9): 31 [] -aInteger0(A)| -aDivisorOf0(B,A)|aInteger0($f1(A,B)). % 58.74/58.99 ** KEPT (pick-wt=12): 32 [] -aInteger0(A)| -aDivisorOf0(B,A)|sdtasdt0(B,$f1(A,B))=A. % 58.74/58.99 ** KEPT (pick-wt=17): 33 [] -aInteger0(A)|aDivisorOf0(B,A)| -aInteger0(B)|B=sz00| -aInteger0(C)|sdtasdt0(B,C)!=A. % 58.74/58.99 ** KEPT (pick-wt=19): 34 [] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|C=sz00| -sdte_qdtlpzmzozddtrp0(A,B,C)|aDivisorOf0(C,sdtpldt0(A,smndt0(B))). % 58.74/58.99 ** KEPT (pick-wt=19): 35 [] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|C=sz00|sdte_qdtlpzmzozddtrp0(A,B,C)| -aDivisorOf0(C,sdtpldt0(A,smndt0(B))). % 58.74/58.99 ** KEPT (pick-wt=11): 36 [] -aInteger0(A)| -aInteger0(B)|B=sz00|sdte_qdtlpzmzozddtrp0(A,A,B). % 58.74/58.99 ** KEPT (pick-wt=17): 37 [] -aInteger0(A)| -aInteger0(B)| -aInteger0(C)|C=sz00| -sdte_qdtlpzmzozddtrp0(A,B,C)|sdte_qdtlpzmzozddtrp0(B,A,C). % 58.74/58.99 ** KEPT (pick-wt=3): 38 [] xq!=sz00. % 58.74/58.99 ** KEPT (pick-wt=10): 40 [copy,39,flip.1] sdtpldt0(xa,smndt0(xc))!=sdtasdt0(xq,sdtpldt0(xn,xm)). % 58.74/58.99 % 58.74/58.99 ------------> process sos: % 58.74/58.99 ** KEPT (pick-wt=3): 75 [] A=A. % 58.74/58.99 ** KEPT (pick-wt=2): 76 [] aInteger0(sz00). % 58.74/58.99 ** KEPT (pick-wt=2): 77 [] aInteger0(sz10). % 58.74/58.99 ** KEPT (pick-wt=2): 78 [] aInteger0(xa). % 58.74/58.99 ** KEPT (pick-wt=2): 79 [] aInteger0(xb). % 58.74/58.99 ** KEPT (pick-wt=2): 80 [] aInteger0(xq). % 58.74/58.99 ** KEPT (pick-wt=2): 81 [] aInteger0(xc). % 58.74/58.99 ** KEPT (pick-wt=4): 82 [] sdte_qdtlpzmzozddtrp0(xa,xb,xq). % 58.74/58.99 ** KEPT (pick-wt=4): 83 [] sdte_qdtlpzmzozddtrp0(xb,xc,xq). % 58.74/58.99 ** KEPT (pick-wt=2): 84 [] aInteger0(xn). % 58.74/58.99 ** KEPT (pick-wt=8): 86 [copy,85,flip.1] sdtpldt0(xa,smndt0(xb))=sdtasdt0(xq,xn). % 58.74/58.99 ---> New Demodulator: 87 [new_demod,86] sdtpldt0(xa,smndt0(xb))=sdtasdt0(xq,xn). % 58.74/58.99 ** KEPT (pick-wt=2): 88 [] aInteger0(xm). % 58.74/58.99 ** KEPT (pick-wt=8): 90 [copy,89,flip.1] sdtpldt0(xb,smndt0(xc))=sdtasdt0(xq,xm). % 58.74/58.99 ---> New Demodulator: 91 [new_demod,90] sdtpldt0(xb,smndt0(xc))=sdtasdt0(xq,xm). % 58.74/58.99 Following clause subsumed by 75 during input processing: 0 [copy,75,flip.1] A=A. % 58.74/58.99 75 back subsumes 50. % 58.74/58.99 75 back subsumes 46. % 58.74/58.99 >>>> Starting back demodulation with 87. % 58.74/58.99 >>>> Starting back demodulation with 91. % 58.74/58.99 % 58.74/58.99 ======= end of input processing ======= % 58.74/58.99 % 58.74/58.99 =========== start of search =========== % 58.74/58.99 % 58.74/58.99 % 58.74/58.99 Resetting weight limit to 5. % 58.74/58.99 % 58.74/58.99 % 58.74/58.99 Resetting weight limit to 5. % 58.74/58.99 % 58.74/58.99 sos_size=1486 % 58.74/58.99 % 58.74/58.99 Search stopped because sos empty. % 58.74/58.99 % 58.74/58.99 % 58.74/58.99 Search stopped because sos empty. % 58.74/58.99 % 58.74/58.99 ============ end of search ============ % 58.74/58.99 % 58.74/58.99 -------------- statistics ------------- % 58.74/58.99 clauses given 1641 % 58.74/58.99 clauses generated 11420367 % 58.74/58.99 clauses kept 3677 % 58.74/58.99 clauses forward subsumed 12065 % 58.74/58.99 clauses back subsumed 10 % 58.74/58.99 Kbytes malloced 5859 % 58.74/58.99 % 58.74/58.99 ----------- times (seconds) ----------- % 58.74/58.99 user CPU time 56.91 (0 hr, 0 min, 56 sec) % 58.74/58.99 system CPU time 0.01 (0 hr, 0 min, 0 sec) % 58.74/58.99 wall-clock time 58 (0 hr, 0 min, 58 sec) % 58.74/58.99 % 58.74/58.99 Process 8266 finished Wed Jul 27 09:12:46 2022 % 58.74/58.99 Otter interrupted % 58.74/58.99 PROOF NOT FOUND %------------------------------------------------------------------------------