/export/starexec/sandbox/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- NO Problem: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(lt(),app(s(),x)),app(s(),y)) -> app(app(lt(),x),y) app(app(lt(),0()),app(s(),y)) -> true() app(app(lt(),y),0()) -> false() app(app(eq(),x),x) -> true() app(app(eq(),app(s(),x)),0()) -> false() app(app(eq(),0()),app(s(),x)) -> false() app(app(merge(),xs),nil()) -> xs app(app(merge(),nil()),ys) -> ys app(app(merge(),app(app(cons(),x),xs)),app(app(cons(),y),ys)) -> app(app(app(if(),app(app(lt(),x),y)),app(app(cons(),x),app(app(merge(),xs),app(app(cons(),y),ys)))), app(app(app(if(),app(app(eq(),x),y)),app(app(cons(),x),app(app(merge(),xs),ys))), app(app(cons(),y),app(app(merge(),app(app(cons(),x),xs)),ys)))) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(mult(),0()),x) -> 0() app(app(mult(),app(s(),x)),y) -> app(app(plus(),y),app(app(mult(),x),y)) app(app(plus(),0()),x) -> 0() app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y)) list1() -> app(app(map(),app(mult(),app(s(),app(s(),0())))),hamming()) list2() -> app(app(map(),app(mult(),app(s(),app(s(),app(s(),0()))))),hamming()) list3() -> app(app(map(),app(mult(),app(s(),app(s(),app(s(),app(s(),app(s(),0()))))))),hamming()) hamming() -> app(app(cons(),app(s(),0())),app(app(merge(),list1()),app(app(merge(),list2()),list3()))) Proof: Extended Uncurrying Processor: application symbol: app symbol table: list3 ==> list30/0 list2 ==> list20/0 hamming ==> hamming0/0 list1 ==> list10/0 plus ==> plus0/0 plus1/1 plus2/2 mult ==> mult0/0 mult1/1 mult2/2 map ==> map0/0 map1/1 map2/2 cons ==> cons0/0 cons1/1 cons2/2 nil ==> nil0/0 merge ==> merge0/0 merge1/1 merge2/2 eq ==> eq0/0 eq1/1 eq2/2 0 ==> 00/0 s ==> s0/0 s1/1 lt ==> lt0/0 lt1/1 lt2/2 false ==> false0/0 true ==> true0/0 if ==> if0/0 if1/1 if2/2 if3/3 uncurry-rules: app(if2(x5,x6),x7) -> if3(x5,x6,x7) app(if1(x5),x6) -> if2(x5,x6) app(if0(),x5) -> if1(x5) app(lt1(x11),x12) -> lt2(x11,x12) app(lt0(),x11) -> lt1(x11) app(s0(),x14) -> s1(x14) app(eq1(x17),x18) -> eq2(x17,x18) app(eq0(),x17) -> eq1(x17) app(merge1(x20),x21) -> merge2(x20,x21) app(merge0(),x20) -> merge1(x20) app(cons1(x24),x25) -> cons2(x24,x25) app(cons0(),x24) -> cons1(x24) app(map1(x27),x28) -> map2(x27,x28) app(map0(),x27) -> map1(x27) app(mult1(x30),x31) -> mult2(x30,x31) app(mult0(),x30) -> mult1(x30) app(plus1(x33),x34) -> plus2(x33,x34) app(plus0(),x33) -> plus1(x33) eta-rules: problem: if3(true0(),xs,ys) -> xs if3(false0(),xs,ys) -> ys lt2(s1(x),s1(y)) -> lt2(x,y) lt2(00(),s1(y)) -> true0() lt2(y,00()) -> false0() eq2(x,x) -> true0() eq2(s1(x),00()) -> false0() eq2(00(),s1(x)) -> false0() merge2(xs,nil0()) -> xs merge2(nil0(),ys) -> ys merge2(cons2(x,xs),cons2(y,ys)) -> if3(lt2(x,y),cons2(x,merge2(xs,cons2(y,ys))),if3(eq2(x,y),cons2(x,merge2(xs,ys)), cons2(y,merge2(cons2(x,xs),ys)))) map2(f,nil0()) -> nil0() map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs)) mult2(00(),x) -> 00() mult2(s1(x),y) -> plus2(y,mult2(x,y)) plus2(00(),x) -> 00() plus2(s1(x),y) -> s1(plus2(x,y)) list10() -> map2(mult1(s1(s1(00()))),hamming0()) list20() -> map2(mult1(s1(s1(s1(00())))),hamming0()) list30() -> map2(mult1(s1(s1(s1(s1(s1(00())))))),hamming0()) hamming0() -> cons2(s1(00()),merge2(list10(),merge2(list20(),list30()))) app(if2(x5,x6),x7) -> if3(x5,x6,x7) app(if1(x5),x6) -> if2(x5,x6) app(if0(),x5) -> if1(x5) app(lt1(x11),x12) -> lt2(x11,x12) app(lt0(),x11) -> lt1(x11) app(s0(),x14) -> s1(x14) app(eq1(x17),x18) -> eq2(x17,x18) app(eq0(),x17) -> eq1(x17) app(merge1(x20),x21) -> merge2(x20,x21) app(merge0(),x20) -> merge1(x20) app(cons1(x24),x25) -> cons2(x24,x25) app(cons0(),x24) -> cons1(x24) app(map1(x27),x28) -> map2(x27,x28) app(map0(),x27) -> map1(x27) app(mult1(x30),x31) -> mult2(x30,x31) app(mult0(),x30) -> mult1(x30) app(plus1(x33),x34) -> plus2(x33,x34) app(plus0(),x33) -> plus1(x33) Unfolding Processor: loop length: 2 terms: list10() map2(mult1(s1(s1(00()))),hamming0()) context: map2(mult1(s1(s1(00()))),cons2(s1(00()),merge2([],merge2(list20(),list30())))) substitution: Qed