MAYBE Problem: table() -> gen(s(0())) gen(x) -> if1(le(x,10()),x) if1(false(),x) -> nil() if1(true(),x) -> if2(x,x) if2(x,y) -> if3(le(y,10()),x,y) if3(true(),x,y) -> cons(entry(x,y,times(x,y)),if2(x,s(y))) if3(false(),x,y) -> gen(s(x)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) 10() -> s(s(s(s(s(s(s(s(s(s(0())))))))))) Proof: DP Processor: DPs: table#() -> gen#(s(0())) gen#(x) -> 10#() gen#(x) -> le#(x,10()) gen#(x) -> if1#(le(x,10()),x) if1#(true(),x) -> if2#(x,x) if2#(x,y) -> 10#() if2#(x,y) -> le#(y,10()) if2#(x,y) -> if3#(le(y,10()),x,y) if3#(true(),x,y) -> if2#(x,s(y)) if3#(true(),x,y) -> times#(x,y) if3#(false(),x,y) -> gen#(s(x)) le#(s(x),s(y)) -> le#(x,y) plus#(s(x),y) -> plus#(x,y) times#(s(x),y) -> times#(x,y) times#(s(x),y) -> plus#(y,times(x,y)) TRS: table() -> gen(s(0())) gen(x) -> if1(le(x,10()),x) if1(false(),x) -> nil() if1(true(),x) -> if2(x,x) if2(x,y) -> if3(le(y,10()),x,y) if3(true(),x,y) -> cons(entry(x,y,times(x,y)),if2(x,s(y))) if3(false(),x,y) -> gen(s(x)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) 10() -> s(s(s(s(s(s(s(s(s(s(0())))))))))) Open