YES Problem 1: (VAR v_NonEmpty:S L:S X:S X1:S X2:S Y:S) (RULES a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ) (STRATEGY INNERMOST) Problem 1: Dependency Pairs Processor: -> Pairs: A__EQ(s(X:S),s(Y:S)) -> A__EQ(X:S,Y:S) MARK(eq(X1:S,X2:S)) -> A__EQ(X1:S,X2:S) MARK(inf(X:S)) -> A__INF(mark(X:S)) MARK(inf(X:S)) -> MARK(X:S) MARK(length(X:S)) -> A__LENGTH(mark(X:S)) MARK(length(X:S)) -> MARK(X:S) MARK(take(X1:S,X2:S)) -> A__TAKE(mark(X1:S),mark(X2:S)) MARK(take(X1:S,X2:S)) -> MARK(X1:S) MARK(take(X1:S,X2:S)) -> MARK(X2:S) -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue Problem 1: SCC Processor: -> Pairs: A__EQ(s(X:S),s(Y:S)) -> A__EQ(X:S,Y:S) MARK(eq(X1:S,X2:S)) -> A__EQ(X1:S,X2:S) MARK(inf(X:S)) -> A__INF(mark(X:S)) MARK(inf(X:S)) -> MARK(X:S) MARK(length(X:S)) -> A__LENGTH(mark(X:S)) MARK(length(X:S)) -> MARK(X:S) MARK(take(X1:S,X2:S)) -> A__TAKE(mark(X1:S),mark(X2:S)) MARK(take(X1:S,X2:S)) -> MARK(X1:S) MARK(take(X1:S,X2:S)) -> MARK(X2:S) -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: A__EQ(s(X:S),s(Y:S)) -> A__EQ(X:S,Y:S) ->->-> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->->Cycle: ->->-> Pairs: MARK(inf(X:S)) -> MARK(X:S) MARK(length(X:S)) -> MARK(X:S) MARK(take(X1:S,X2:S)) -> MARK(X1:S) MARK(take(X1:S,X2:S)) -> MARK(X2:S) ->->-> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue The problem is decomposed in 2 subproblems. Problem 1.1: Subterm Processor: -> Pairs: A__EQ(s(X:S),s(Y:S)) -> A__EQ(X:S,Y:S) -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->Projection: pi(A__EQ) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: MARK(inf(X:S)) -> MARK(X:S) MARK(length(X:S)) -> MARK(X:S) MARK(take(X1:S,X2:S)) -> MARK(X1:S) MARK(take(X1:S,X2:S)) -> MARK(X2:S) -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->Projection: pi(MARK) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: a__eq(0,0) -> ttrue a__eq(s(X:S),s(Y:S)) -> a__eq(X:S,Y:S) a__eq(X:S,Y:S) -> ffalse a__eq(X1:S,X2:S) -> eq(X1:S,X2:S) a__inf(X:S) -> cons(X:S,inf(s(X:S))) a__inf(X:S) -> inf(X:S) a__length(cons(X:S,L:S)) -> s(length(L:S)) a__length(nil) -> 0 a__length(X:S) -> length(X:S) a__take(0,X:S) -> nil a__take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) a__take(X1:S,X2:S) -> take(X1:S,X2:S) mark(0) -> 0 mark(cons(X1:S,X2:S)) -> cons(X1:S,X2:S) mark(eq(X1:S,X2:S)) -> a__eq(X1:S,X2:S) mark(ffalse) -> ffalse mark(inf(X:S)) -> a__inf(mark(X:S)) mark(length(X:S)) -> a__length(mark(X:S)) mark(nil) -> nil mark(s(X:S)) -> s(X:S) mark(take(X1:S,X2:S)) -> a__take(mark(X1:S),mark(X2:S)) mark(ttrue) -> ttrue ->Strongly Connected Components: There is no strongly connected component The problem is finite.