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())))))))))) TDG 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())))))))))) graph: plus#(s(x),y) -> plus#(x,y) -> plus#(s(x),y) -> plus#(x,y) times#(s(x),y) -> plus#(y,times(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)) times#(s(x),y) -> times#(x,y) -> times#(s(x),y) -> times#(x,y) if3#(true(),x,y) -> times#(x,y) -> times#(s(x),y) -> plus#(y,times(x,y)) if3#(true(),x,y) -> times#(x,y) -> times#(s(x),y) -> times#(x,y) if3#(true(),x,y) -> if2#(x,s(y)) -> if2#(x,y) -> if3#(le(y,10()),x,y) if3#(true(),x,y) -> if2#(x,s(y)) -> if2#(x,y) -> le#(y,10()) if3#(true(),x,y) -> if2#(x,s(y)) -> if2#(x,y) -> 10#() if3#(false(),x,y) -> gen#(s(x)) -> gen#(x) -> if1#(le(x,10()),x) if3#(false(),x,y) -> gen#(s(x)) -> gen#(x) -> le#(x,10()) if3#(false(),x,y) -> gen#(s(x)) -> gen#(x) -> 10#() if2#(x,y) -> if3#(le(y,10()),x,y) -> if3#(false(),x,y) -> gen#(s(x)) if2#(x,y) -> if3#(le(y,10()),x,y) -> if3#(true(),x,y) -> times#(x,y) if2#(x,y) -> if3#(le(y,10()),x,y) -> if3#(true(),x,y) -> if2#(x,s(y)) if2#(x,y) -> le#(y,10()) -> le#(s(x),s(y)) -> le#(x,y) if1#(true(),x) -> if2#(x,x) -> if2#(x,y) -> if3#(le(y,10()),x,y) if1#(true(),x) -> if2#(x,x) -> if2#(x,y) -> le#(y,10()) if1#(true(),x) -> if2#(x,x) -> if2#(x,y) -> 10#() le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) gen#(x) -> if1#(le(x,10()),x) -> if1#(true(),x) -> if2#(x,x) gen#(x) -> le#(x,10()) -> le#(s(x),s(y)) -> le#(x,y) table#() -> gen#(s(0())) -> gen#(x) -> if1#(le(x,10()),x) table#() -> gen#(s(0())) -> gen#(x) -> le#(x,10()) table#() -> gen#(s(0())) -> gen#(x) -> 10#() SCC Processor: #sccs: 4 #rules: 8 #arcs: 25/225 DPs: if3#(true(),x,y) -> if2#(x,s(y)) if2#(x,y) -> if3#(le(y,10()),x,y) if3#(false(),x,y) -> gen#(s(x)) gen#(x) -> if1#(le(x,10()),x) if1#(true(),x) -> if2#(x,x) 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 DPs: le#(s(x),s(y)) -> le#(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())))))))))) Subterm Criterion Processor: simple projection: pi(le#) = 1 problem: DPs: 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())))))))))) Qed DPs: times#(s(x),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())))))))))) Subterm Criterion Processor: simple projection: pi(times#) = 0 problem: DPs: 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())))))))))) Qed DPs: plus#(s(x),y) -> plus#(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())))))))))) Subterm Criterion Processor: simple projection: pi(plus#) = 0 problem: DPs: 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())))))))))) Qed