YES Problem 1: (VAR v_NonEmpty:S x:S y:S) (RULES active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ) Problem 1: Dependency Pairs Processor: -> Pairs: ACTIVE(f(x:S)) -> ACTIVE(x:S) ACTIVE(f(x:S)) -> F(active(x:S)) CHECK(f(x:S)) -> CHECK(x:S) CHECK(f(x:S)) -> F(check(x:S)) CHECK(x:S) -> MATCH(f(X),x:S) CHECK(x:S) -> START(match(f(X),x:S)) F(found(x:S)) -> F(x:S) F(mark(x:S)) -> F(x:S) F(ok(x:S)) -> F(x:S) MATCH(f(x:S),f(y:S)) -> F(match(x:S,y:S)) MATCH(f(x:S),f(y:S)) -> MATCH(x:S,y:S) MATCH(X,x:S) -> PROPER(x:S) PROPER(f(x:S)) -> F(proper(x:S)) PROPER(f(x:S)) -> PROPER(x:S) TOP(active(c)) -> TOP(mark(c)) TOP(found(x:S)) -> ACTIVE(x:S) TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> CHECK(x:S) TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) Problem 1: SCC Processor: -> Pairs: ACTIVE(f(x:S)) -> ACTIVE(x:S) ACTIVE(f(x:S)) -> F(active(x:S)) CHECK(f(x:S)) -> CHECK(x:S) CHECK(f(x:S)) -> F(check(x:S)) CHECK(x:S) -> MATCH(f(X),x:S) CHECK(x:S) -> START(match(f(X),x:S)) F(found(x:S)) -> F(x:S) F(mark(x:S)) -> F(x:S) F(ok(x:S)) -> F(x:S) MATCH(f(x:S),f(y:S)) -> F(match(x:S,y:S)) MATCH(f(x:S),f(y:S)) -> MATCH(x:S,y:S) MATCH(X,x:S) -> PROPER(x:S) PROPER(f(x:S)) -> F(proper(x:S)) PROPER(f(x:S)) -> PROPER(x:S) TOP(active(c)) -> TOP(mark(c)) TOP(found(x:S)) -> ACTIVE(x:S) TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> CHECK(x:S) TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: F(found(x:S)) -> F(x:S) F(mark(x:S)) -> F(x:S) F(ok(x:S)) -> F(x:S) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->->Cycle: ->->-> Pairs: PROPER(f(x:S)) -> PROPER(x:S) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->->Cycle: ->->-> Pairs: MATCH(f(x:S),f(y:S)) -> MATCH(x:S,y:S) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->->Cycle: ->->-> Pairs: CHECK(f(x:S)) -> CHECK(x:S) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->->Cycle: ->->-> Pairs: ACTIVE(f(x:S)) -> ACTIVE(x:S) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->->Cycle: ->->-> Pairs: TOP(active(c)) -> TOP(mark(c)) TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> TOP(check(x:S)) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) The problem is decomposed in 6 subproblems. Problem 1.1: Subterm Processor: -> Pairs: F(found(x:S)) -> F(x:S) F(mark(x:S)) -> F(x:S) F(ok(x:S)) -> F(x:S) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Projection: pi(F) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: PROPER(f(x:S)) -> PROPER(x:S) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Projection: pi(PROPER) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: MATCH(f(x:S),f(y:S)) -> MATCH(x:S,y:S) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Projection: pi(MATCH) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: CHECK(f(x:S)) -> CHECK(x:S) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Projection: pi(CHECK) = 1 Problem 1.4: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Subterm Processor: -> Pairs: ACTIVE(f(x:S)) -> ACTIVE(x:S) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Projection: pi(ACTIVE) = 1 Problem 1.5: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.6: Reduction Pair Processor: -> Pairs: TOP(active(c)) -> TOP(mark(c)) TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) -> Usable rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [active](X) = X [check](X) = 1 [f](X) = 1 [match](X1,X2) = X1 [proper](X) = 2 [start](X) = X [X] = 2 [c] = 2 [found](X) = X [mark](X) = 1 [ok](X) = X [TOP](X) = 2.X Problem 1.6: SCC Processor: -> Pairs: TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> TOP(check(x:S)) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) Problem 1.6: Reduction Pair Processor: -> Pairs: TOP(found(x:S)) -> TOP(active(x:S)) TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) -> Usable rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [active](X) = 2.X + 1 [check](X) = 2.X + 2 [f](X) = 2.X + 2 [match](X1,X2) = X2 [proper](X) = X [start](X) = 2.X + 2 [X] = 0 [c] = 1 [found](X) = 2.X + 2 [mark](X) = 2.X + 2 [ok](X) = X [TOP](X) = 2.X Problem 1.6: SCC Processor: -> Pairs: TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: TOP(mark(x:S)) -> TOP(check(x:S)) ->->-> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) Problem 1.6: Reduction Pair Processor: -> Pairs: TOP(mark(x:S)) -> TOP(check(x:S)) -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) -> Usable rules: check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [check](X) = X + 1 [f](X) = X + 2 [match](X1,X2) = X2 + 2 [proper](X) = X + 2 [start](X) = 1 [X] = 0 [c] = 1 [found](X) = 0 [mark](X) = X + 2 [ok](X) = X + 2 [TOP](X) = 2.X Problem 1.6: SCC Processor: -> Pairs: Empty -> Rules: active(f(x:S)) -> f(active(x:S)) active(f(x:S)) -> mark(x:S) check(f(x:S)) -> f(check(x:S)) check(x:S) -> start(match(f(X),x:S)) f(found(x:S)) -> found(f(x:S)) f(mark(x:S)) -> mark(f(x:S)) f(ok(x:S)) -> ok(f(x:S)) match(f(x:S),f(y:S)) -> f(match(x:S,y:S)) match(X,x:S) -> proper(x:S) proper(f(x:S)) -> f(proper(x:S)) proper(c) -> ok(c) start(ok(x:S)) -> found(x:S) top(active(c)) -> top(mark(c)) top(found(x:S)) -> top(active(x:S)) top(mark(x:S)) -> top(check(x:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite.