3.61/4.39 YES 3.61/4.39 3.61/4.39 Problem 1: 3.61/4.39 3.61/4.39 (VAR v_NonEmpty:S L:S X:S X1:S X2:S) 3.61/4.39 (RULES 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 ) 3.61/4.39 (STRATEGY INNERMOST) 3.61/4.39 3.61/4.39 Problem 1: 3.61/4.39 3.61/4.39 Dependency Pairs Processor: 3.61/4.39 -> Pairs: 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> ADX(L:S) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> CONS(X:S,adx(L:S)) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> INCR(cons(X:S,adx(L:S))) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.39 ACTIVE(adx(nil)) -> MARK(nil) 3.61/4.39 ACTIVE(head(cons(X:S,L:S))) -> MARK(X:S) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> CONS(s(X:S),incr(L:S)) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> INCR(L:S) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> S(X:S) 3.61/4.39 ACTIVE(incr(nil)) -> MARK(nil) 3.61/4.39 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.39 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.39 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.39 ADX(active(X:S)) -> ADX(X:S) 3.61/4.39 ADX(mark(X:S)) -> ADX(X:S) 3.61/4.39 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.39 HEAD(active(X:S)) -> HEAD(X:S) 3.61/4.39 HEAD(mark(X:S)) -> HEAD(X:S) 3.61/4.39 INCR(active(X:S)) -> INCR(X:S) 3.61/4.39 INCR(mark(X:S)) -> INCR(X:S) 3.61/4.39 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.39 MARK(adx(X:S)) -> ADX(mark(X:S)) 3.61/4.39 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> CONS(mark(X1:S),X2:S) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.39 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.39 MARK(head(X:S)) -> HEAD(mark(X:S)) 3.61/4.39 MARK(head(X:S)) -> MARK(X:S) 3.61/4.39 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.39 MARK(incr(X:S)) -> INCR(mark(X:S)) 3.61/4.39 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.39 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.39 MARK(s(X:S)) -> MARK(X:S) 3.61/4.39 MARK(s(X:S)) -> S(mark(X:S)) 3.61/4.39 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.39 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.39 MARK(tail(X:S)) -> TAIL(mark(X:S)) 3.61/4.39 MARK(nats) -> ACTIVE(nats) 3.61/4.39 MARK(zeros) -> ACTIVE(zeros) 3.61/4.39 S(active(X:S)) -> S(X:S) 3.61/4.39 S(mark(X:S)) -> S(X:S) 3.61/4.39 TAIL(active(X:S)) -> TAIL(X:S) 3.61/4.39 TAIL(mark(X:S)) -> TAIL(X:S) 3.61/4.39 -> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 3.61/4.39 Problem 1: 3.61/4.39 3.61/4.39 SCC Processor: 3.61/4.39 -> Pairs: 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> ADX(L:S) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> CONS(X:S,adx(L:S)) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> INCR(cons(X:S,adx(L:S))) 3.61/4.39 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.39 ACTIVE(adx(nil)) -> MARK(nil) 3.61/4.39 ACTIVE(head(cons(X:S,L:S))) -> MARK(X:S) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> CONS(s(X:S),incr(L:S)) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> INCR(L:S) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.39 ACTIVE(incr(cons(X:S,L:S))) -> S(X:S) 3.61/4.39 ACTIVE(incr(nil)) -> MARK(nil) 3.61/4.39 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.39 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.39 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.39 ADX(active(X:S)) -> ADX(X:S) 3.61/4.39 ADX(mark(X:S)) -> ADX(X:S) 3.61/4.39 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.39 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.39 HEAD(active(X:S)) -> HEAD(X:S) 3.61/4.39 HEAD(mark(X:S)) -> HEAD(X:S) 3.61/4.39 INCR(active(X:S)) -> INCR(X:S) 3.61/4.39 INCR(mark(X:S)) -> INCR(X:S) 3.61/4.39 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.39 MARK(adx(X:S)) -> ADX(mark(X:S)) 3.61/4.39 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> CONS(mark(X1:S),X2:S) 3.61/4.39 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.39 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.39 MARK(head(X:S)) -> HEAD(mark(X:S)) 3.61/4.39 MARK(head(X:S)) -> MARK(X:S) 3.61/4.39 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.39 MARK(incr(X:S)) -> INCR(mark(X:S)) 3.61/4.39 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.39 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.39 MARK(s(X:S)) -> MARK(X:S) 3.61/4.39 MARK(s(X:S)) -> S(mark(X:S)) 3.61/4.39 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.39 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.39 MARK(tail(X:S)) -> TAIL(mark(X:S)) 3.61/4.39 MARK(nats) -> ACTIVE(nats) 3.61/4.39 MARK(zeros) -> ACTIVE(zeros) 3.61/4.39 S(active(X:S)) -> S(X:S) 3.61/4.39 S(mark(X:S)) -> S(X:S) 3.61/4.39 TAIL(active(X:S)) -> TAIL(X:S) 3.61/4.39 TAIL(mark(X:S)) -> TAIL(X:S) 3.61/4.39 -> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 ->Strongly Connected Components: 3.61/4.39 ->->Cycle: 3.61/4.39 ->->-> Pairs: 3.61/4.39 TAIL(active(X:S)) -> TAIL(X:S) 3.61/4.39 TAIL(mark(X:S)) -> TAIL(X:S) 3.61/4.39 ->->-> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 ->->Cycle: 3.61/4.39 ->->-> Pairs: 3.61/4.39 S(active(X:S)) -> S(X:S) 3.61/4.39 S(mark(X:S)) -> S(X:S) 3.61/4.39 ->->-> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 ->->Cycle: 3.61/4.39 ->->-> Pairs: 3.61/4.39 INCR(active(X:S)) -> INCR(X:S) 3.61/4.39 INCR(mark(X:S)) -> INCR(X:S) 3.61/4.39 ->->-> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.39 mark(nats) -> active(nats) 3.61/4.39 mark(nil) -> active(nil) 3.61/4.39 mark(zeros) -> active(zeros) 3.61/4.39 s(active(X:S)) -> s(X:S) 3.61/4.39 s(mark(X:S)) -> s(X:S) 3.61/4.39 tail(active(X:S)) -> tail(X:S) 3.61/4.39 tail(mark(X:S)) -> tail(X:S) 3.61/4.39 ->->Cycle: 3.61/4.39 ->->-> Pairs: 3.61/4.39 HEAD(active(X:S)) -> HEAD(X:S) 3.61/4.39 HEAD(mark(X:S)) -> HEAD(X:S) 3.61/4.39 ->->-> Rules: 3.61/4.39 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.39 active(adx(nil)) -> mark(nil) 3.61/4.39 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.39 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.39 active(incr(nil)) -> mark(nil) 3.61/4.39 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.39 active(nats) -> mark(adx(zeros)) 3.61/4.39 active(zeros) -> mark(cons(0,zeros)) 3.61/4.39 adx(active(X:S)) -> adx(X:S) 3.61/4.39 adx(mark(X:S)) -> adx(X:S) 3.61/4.39 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.39 head(active(X:S)) -> head(X:S) 3.61/4.39 head(mark(X:S)) -> head(X:S) 3.61/4.39 incr(active(X:S)) -> incr(X:S) 3.61/4.39 incr(mark(X:S)) -> incr(X:S) 3.61/4.39 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.39 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.39 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.39 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.39 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.39 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.39 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ADX(active(X:S)) -> ADX(X:S) 3.61/4.40 ADX(mark(X:S)) -> ADX(X:S) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(head(cons(X:S,L:S))) -> MARK(X:S) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 3.61/4.40 The problem is decomposed in 7 subproblems. 3.61/4.40 3.61/4.40 Problem 1.1: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 TAIL(active(X:S)) -> TAIL(X:S) 3.61/4.40 TAIL(mark(X:S)) -> TAIL(X:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(TAIL) = 1 3.61/4.40 3.61/4.40 Problem 1.1: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.2: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 S(active(X:S)) -> S(X:S) 3.61/4.40 S(mark(X:S)) -> S(X:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(S) = 1 3.61/4.40 3.61/4.40 Problem 1.2: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.3: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 INCR(active(X:S)) -> INCR(X:S) 3.61/4.40 INCR(mark(X:S)) -> INCR(X:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(INCR) = 1 3.61/4.40 3.61/4.40 Problem 1.3: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.4: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 HEAD(active(X:S)) -> HEAD(X:S) 3.61/4.40 HEAD(mark(X:S)) -> HEAD(X:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(HEAD) = 1 3.61/4.40 3.61/4.40 Problem 1.4: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.5: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(CONS) = 1 3.61/4.40 3.61/4.40 Problem 1.5: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.5: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(CONS) = 2 3.61/4.40 3.61/4.40 Problem 1.5: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.6: 3.61/4.40 3.61/4.40 Subterm Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ADX(active(X:S)) -> ADX(X:S) 3.61/4.40 ADX(mark(X:S)) -> ADX(X:S) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Projection: 3.61/4.40 pi(ADX) = 1 3.61/4.40 3.61/4.40 Problem 1.6: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 Empty 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 There is no strongly connected component 3.61/4.40 3.61/4.40 The problem is finite. 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(head(cons(X:S,L:S))) -> MARK(X:S) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = X 3.61/4.40 [adx](X) = 2.X 3.61/4.40 [cons](X1,X2) = 2.X1 + 2.X2 3.61/4.40 [head](X) = 2.X + 2 3.61/4.40 [incr](X) = X 3.61/4.40 [mark](X) = X 3.61/4.40 [s](X) = X 3.61/4.40 [tail](X) = 2.X + 1 3.61/4.40 [0] = 0 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 2 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 0 3.61/4.40 [ACTIVE](X) = 2.X + 1 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2.X + 1 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(tail(cons(X:S,L:S))) -> MARK(L:S) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = X 3.61/4.40 [adx](X) = 2.X 3.61/4.40 [cons](X1,X2) = 2.X1 + 2.X2 3.61/4.40 [head](X) = 2.X + 2 3.61/4.40 [incr](X) = X 3.61/4.40 [mark](X) = X 3.61/4.40 [s](X) = X 3.61/4.40 [tail](X) = X + 2 3.61/4.40 [0] = 0 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 2 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 0 3.61/4.40 [ACTIVE](X) = 2.X + 2 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2.X + 2 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(nats) -> MARK(adx(zeros)) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = X 3.61/4.40 [adx](X) = 2.X 3.61/4.40 [cons](X1,X2) = 2.X1 + 2.X2 3.61/4.40 [head](X) = 2.X + 1 3.61/4.40 [incr](X) = X 3.61/4.40 [mark](X) = X 3.61/4.40 [s](X) = X 3.61/4.40 [tail](X) = X + 1 3.61/4.40 [0] = 0 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 1 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 0 3.61/4.40 [ACTIVE](X) = 2.X + 2 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2.X + 2 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(nats) -> ACTIVE(nats) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(adx(X:S)) -> MARK(X:S) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = X 3.61/4.40 [adx](X) = X + 2 3.61/4.40 [cons](X1,X2) = 2.X1 + X2 3.61/4.40 [head](X) = 2.X + 2 3.61/4.40 [incr](X) = X 3.61/4.40 [mark](X) = X 3.61/4.40 [s](X) = X 3.61/4.40 [tail](X) = 2.X + 2 3.61/4.40 [0] = 0 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 2 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 0 3.61/4.40 [ACTIVE](X) = 2.X + 2 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2.X + 2 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = 1 3.61/4.40 [adx](X) = 2 3.61/4.40 [cons](X1,X2) = 0 3.61/4.40 [head](X) = 2 3.61/4.40 [incr](X) = 2 3.61/4.40 [mark](X) = 1 3.61/4.40 [s](X) = 0 3.61/4.40 [tail](X) = 0 3.61/4.40 [0] = 0 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 0 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 2 3.61/4.40 [ACTIVE](X) = X 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Strongly Connected Components: 3.61/4.40 ->->Cycle: 3.61/4.40 ->->-> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 ->->-> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 Reduction Pairs Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.40 MARK(head(X:S)) -> ACTIVE(head(mark(X:S))) 3.61/4.40 MARK(head(X:S)) -> MARK(X:S) 3.61/4.40 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.40 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.40 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.40 MARK(s(X:S)) -> MARK(X:S) 3.61/4.40 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.40 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.40 MARK(zeros) -> ACTIVE(zeros) 3.61/4.40 -> Rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 -> Usable rules: 3.61/4.40 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.40 active(adx(nil)) -> mark(nil) 3.61/4.40 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.40 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.40 active(incr(nil)) -> mark(nil) 3.61/4.40 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.40 active(nats) -> mark(adx(zeros)) 3.61/4.40 active(zeros) -> mark(cons(0,zeros)) 3.61/4.40 adx(active(X:S)) -> adx(X:S) 3.61/4.40 adx(mark(X:S)) -> adx(X:S) 3.61/4.40 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.40 head(active(X:S)) -> head(X:S) 3.61/4.40 head(mark(X:S)) -> head(X:S) 3.61/4.40 incr(active(X:S)) -> incr(X:S) 3.61/4.40 incr(mark(X:S)) -> incr(X:S) 3.61/4.40 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.40 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.40 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.40 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.40 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.40 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.40 mark(0) -> active(0) 3.61/4.40 mark(nats) -> active(nats) 3.61/4.40 mark(nil) -> active(nil) 3.61/4.40 mark(zeros) -> active(zeros) 3.61/4.40 s(active(X:S)) -> s(X:S) 3.61/4.40 s(mark(X:S)) -> s(X:S) 3.61/4.40 tail(active(X:S)) -> tail(X:S) 3.61/4.40 tail(mark(X:S)) -> tail(X:S) 3.61/4.40 ->Interpretation type: 3.61/4.40 Linear 3.61/4.40 ->Coefficients: 3.61/4.40 Natural Numbers 3.61/4.40 ->Dimension: 3.61/4.40 1 3.61/4.40 ->Bound: 3.61/4.40 2 3.61/4.40 ->Interpretation: 3.61/4.40 3.61/4.40 [active](X) = 0 3.61/4.40 [adx](X) = 1 3.61/4.40 [cons](X1,X2) = 0 3.61/4.40 [head](X) = 0 3.61/4.40 [incr](X) = 1 3.61/4.40 [mark](X) = 0 3.61/4.40 [s](X) = 1 3.61/4.40 [tail](X) = 0 3.61/4.40 [0] = 2 3.61/4.40 [fSNonEmpty] = 0 3.61/4.40 [nats] = 0 3.61/4.40 [nil] = 2 3.61/4.40 [zeros] = 1 3.61/4.40 [ACTIVE](X) = X + 1 3.61/4.40 [ADX](X) = 0 3.61/4.40 [CONS](X1,X2) = 0 3.61/4.40 [HEAD](X) = 0 3.61/4.40 [INCR](X) = 0 3.61/4.40 [MARK](X) = 2 3.61/4.40 [S](X) = 0 3.61/4.40 [TAIL](X) = 0 3.61/4.40 3.61/4.40 Problem 1.7: 3.61/4.40 3.61/4.40 SCC Processor: 3.61/4.40 -> Pairs: 3.61/4.40 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.40 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.40 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.40 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.40 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(head(X:S)) -> MARK(X:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(head(X:S)) -> MARK(X:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(head(X:S)) -> MARK(X:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = X 3.61/4.41 [adx](X) = 2.X + 2 3.61/4.41 [cons](X1,X2) = 2.X1 + X2 3.61/4.41 [head](X) = 2.X + 1 3.61/4.41 [incr](X) = X 3.61/4.41 [mark](X) = X 3.61/4.41 [s](X) = X 3.61/4.41 [tail](X) = 2.X + 2 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 2 3.61/4.41 [zeros] = 0 3.61/4.41 [ACTIVE](X) = 2.X + 2 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2.X + 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = 2 3.61/4.41 [adx](X) = 1 3.61/4.41 [cons](X1,X2) = 0 3.61/4.41 [head](X) = 2 3.61/4.41 [incr](X) = 1 3.61/4.41 [mark](X) = 2 3.61/4.41 [s](X) = 0 3.61/4.41 [tail](X) = 1 3.61/4.41 [0] = 1 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 1 3.61/4.41 [zeros] = 1 3.61/4.41 [ACTIVE](X) = 2.X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> ACTIVE(tail(mark(X:S))) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = 2 3.61/4.41 [adx](X) = 1 3.61/4.41 [cons](X1,X2) = 0 3.61/4.41 [head](X) = 1 3.61/4.41 [incr](X) = 1 3.61/4.41 [mark](X) = 2 3.61/4.41 [s](X) = 2 3.61/4.41 [tail](X) = 0 3.61/4.41 [0] = 1 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 0 3.61/4.41 [zeros] = 1 3.61/4.41 [ACTIVE](X) = 2.X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(tail(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = X 3.61/4.41 [adx](X) = 2.X 3.61/4.41 [cons](X1,X2) = 2.X1 + 2.X2 3.61/4.41 [head](X) = 2.X + 1 3.61/4.41 [incr](X) = X 3.61/4.41 [mark](X) = X 3.61/4.41 [s](X) = X 3.61/4.41 [tail](X) = 2.X + 1 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 2 3.61/4.41 [zeros] = 0 3.61/4.41 [ACTIVE](X) = 2.X + 2 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2.X + 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(adx(cons(X:S,L:S))) -> MARK(incr(cons(X:S,adx(L:S)))) 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 All rationals 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = X 3.61/4.41 [adx](X) = 2.X + 2 3.61/4.41 [cons](X1,X2) = 2.X1 + 1/2.X2 3.61/4.41 [head](X) = 2.X + 2 3.61/4.41 [incr](X) = X + 1/2 3.61/4.41 [mark](X) = X 3.61/4.41 [s](X) = X 3.61/4.41 [tail](X) = 2.X 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 1/2 3.61/4.41 [zeros] = 0 3.61/4.41 [ACTIVE](X) = 1/2.X + 2 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 1/2.X + 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(adx(X:S)) -> ACTIVE(adx(mark(X:S))) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = 2 3.61/4.41 [adx](X) = 0 3.61/4.41 [cons](X1,X2) = 0 3.61/4.41 [head](X) = 2 3.61/4.41 [incr](X) = 2 3.61/4.41 [mark](X) = 2 3.61/4.41 [s](X) = 2 3.61/4.41 [tail](X) = 2 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 1 3.61/4.41 [nil] = 0 3.61/4.41 [zeros] = 2 3.61/4.41 [ACTIVE](X) = X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(incr(cons(X:S,L:S))) -> MARK(cons(s(X:S),incr(L:S))) 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 All rationals 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = X 3.61/4.41 [adx](X) = 2.X 3.61/4.41 [cons](X1,X2) = 2.X1 + 1/2.X2 + 1/2 3.61/4.41 [head](X) = 2.X + 1/2 3.61/4.41 [incr](X) = X + 1/2 3.61/4.41 [mark](X) = X 3.61/4.41 [s](X) = X 3.61/4.41 [tail](X) = 2.X + 2 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 2 3.61/4.41 [zeros] = 1 3.61/4.41 [ACTIVE](X) = 2.X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2.X 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> ACTIVE(incr(mark(X:S))) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = X 3.61/4.41 [adx](X) = X 3.61/4.41 [cons](X1,X2) = 2.X1 + X2 3.61/4.41 [head](X) = X 3.61/4.41 [incr](X) = 0 3.61/4.41 [mark](X) = X 3.61/4.41 [s](X) = 0 3.61/4.41 [tail](X) = 2.X + 2 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 2 3.61/4.41 [nil] = 0 3.61/4.41 [zeros] = 2 3.61/4.41 [ACTIVE](X) = X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Reduction Pairs Processor: 3.61/4.41 -> Pairs: 3.61/4.41 ACTIVE(zeros) -> MARK(cons(0,zeros)) 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 -> Usable rules: 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 ->Interpretation type: 3.61/4.41 Linear 3.61/4.41 ->Coefficients: 3.61/4.41 Natural Numbers 3.61/4.41 ->Dimension: 3.61/4.41 1 3.61/4.41 ->Bound: 3.61/4.41 2 3.61/4.41 ->Interpretation: 3.61/4.41 3.61/4.41 [active](X) = 2.X 3.61/4.41 [adx](X) = 0 3.61/4.41 [cons](X1,X2) = 2.X1 + 1 3.61/4.41 [head](X) = 0 3.61/4.41 [incr](X) = 2.X 3.61/4.41 [mark](X) = 2.X 3.61/4.41 [s](X) = 2.X 3.61/4.41 [tail](X) = 0 3.61/4.41 [0] = 0 3.61/4.41 [fSNonEmpty] = 0 3.61/4.41 [nats] = 0 3.61/4.41 [nil] = 0 3.61/4.41 [zeros] = 2 3.61/4.41 [ACTIVE](X) = 2.X 3.61/4.41 [ADX](X) = 0 3.61/4.41 [CONS](X1,X2) = 0 3.61/4.41 [HEAD](X) = 0 3.61/4.41 [INCR](X) = 0 3.61/4.41 [MARK](X) = 2.X + 1 3.61/4.41 [S](X) = 0 3.61/4.41 [TAIL](X) = 0 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 MARK(zeros) -> ACTIVE(zeros) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 ->->Cycle: 3.61/4.41 ->->-> Pairs: 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 ->->-> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 Subterm Processor: 3.61/4.41 -> Pairs: 3.61/4.41 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 3.61/4.41 MARK(incr(X:S)) -> MARK(X:S) 3.61/4.41 MARK(s(X:S)) -> MARK(X:S) 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Projection: 3.61/4.41 pi(MARK) = 1 3.61/4.41 3.61/4.41 Problem 1.7: 3.61/4.41 3.61/4.41 SCC Processor: 3.61/4.41 -> Pairs: 3.61/4.41 Empty 3.61/4.41 -> Rules: 3.61/4.41 active(adx(cons(X:S,L:S))) -> mark(incr(cons(X:S,adx(L:S)))) 3.61/4.41 active(adx(nil)) -> mark(nil) 3.61/4.41 active(head(cons(X:S,L:S))) -> mark(X:S) 3.61/4.41 active(incr(cons(X:S,L:S))) -> mark(cons(s(X:S),incr(L:S))) 3.61/4.41 active(incr(nil)) -> mark(nil) 3.61/4.41 active(tail(cons(X:S,L:S))) -> mark(L:S) 3.61/4.41 active(nats) -> mark(adx(zeros)) 3.61/4.41 active(zeros) -> mark(cons(0,zeros)) 3.61/4.41 adx(active(X:S)) -> adx(X:S) 3.61/4.41 adx(mark(X:S)) -> adx(X:S) 3.61/4.41 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 3.61/4.41 head(active(X:S)) -> head(X:S) 3.61/4.41 head(mark(X:S)) -> head(X:S) 3.61/4.41 incr(active(X:S)) -> incr(X:S) 3.61/4.41 incr(mark(X:S)) -> incr(X:S) 3.61/4.41 mark(adx(X:S)) -> active(adx(mark(X:S))) 3.61/4.41 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 3.61/4.41 mark(head(X:S)) -> active(head(mark(X:S))) 3.61/4.41 mark(incr(X:S)) -> active(incr(mark(X:S))) 3.61/4.41 mark(s(X:S)) -> active(s(mark(X:S))) 3.61/4.41 mark(tail(X:S)) -> active(tail(mark(X:S))) 3.61/4.41 mark(0) -> active(0) 3.61/4.41 mark(nats) -> active(nats) 3.61/4.41 mark(nil) -> active(nil) 3.61/4.41 mark(zeros) -> active(zeros) 3.61/4.41 s(active(X:S)) -> s(X:S) 3.61/4.41 s(mark(X:S)) -> s(X:S) 3.61/4.41 tail(active(X:S)) -> tail(X:S) 3.61/4.41 tail(mark(X:S)) -> tail(X:S) 3.61/4.41 ->Strongly Connected Components: 3.61/4.41 There is no strongly connected component 3.61/4.41 3.61/4.41 The problem is finite. 3.61/4.41 EOF