/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR h i u v x y) (RULES eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ) Problem 1: Innermost Equivalent Processor: -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h -> The term rewriting system is non-overlaping or locally confluent overlay system. Therefore, innermost termination implies termination. Problem 1: Dependency Pairs Processor: -> Pairs: EQ(s(x),s(y)) -> EQ(x,y) IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) IF_REACH_1(true,x,y,edge(u,v,i),h) -> EQ(y,v) IF_REACH_1(true,x,y,edge(u,v,i),h) -> IF_REACH_2(eq(y,v),x,y,edge(u,v,i),h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> OR(reach(x,y,i,h),reach(v,y,union(i,h),empty)) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(v,y,union(i,h),empty) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> UNION(i,h) REACH(x,y,edge(u,v,i),h) -> EQ(x,u) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) UNION(edge(x,y,i),h) -> UNION(i,h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h Problem 1: SCC Processor: -> Pairs: EQ(s(x),s(y)) -> EQ(x,y) IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) IF_REACH_1(true,x,y,edge(u,v,i),h) -> EQ(y,v) IF_REACH_1(true,x,y,edge(u,v,i),h) -> IF_REACH_2(eq(y,v),x,y,edge(u,v,i),h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> OR(reach(x,y,i,h),reach(v,y,union(i,h),empty)) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(v,y,union(i,h),empty) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> UNION(i,h) REACH(x,y,edge(u,v,i),h) -> EQ(x,u) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) UNION(edge(x,y,i),h) -> UNION(i,h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: UNION(edge(x,y,i),h) -> UNION(i,h) ->->-> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->->Cycle: ->->-> Pairs: EQ(s(x),s(y)) -> EQ(x,y) ->->-> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->->Cycle: ->->-> Pairs: IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) IF_REACH_1(true,x,y,edge(u,v,i),h) -> IF_REACH_2(eq(y,v),x,y,edge(u,v,i),h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(v,y,union(i,h),empty) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,h) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) ->->-> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h The problem is decomposed in 3 subproblems. Problem 1.1: Subterm Processor: -> Pairs: UNION(edge(x,y,i),h) -> UNION(i,h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Projection: pi(UNION) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: EQ(s(x),s(y)) -> EQ(x,y) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Projection: pi(EQ) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Reduction Pairs Processor: -> Pairs: IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) IF_REACH_1(true,x,y,edge(u,v,i),h) -> IF_REACH_2(eq(y,v),x,y,edge(u,v,i),h) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(v,y,union(i,h),empty) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,h) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h -> Usable rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [eq](X1,X2) = 2 [union](X1,X2) = X1 + X2 + 1 [0] = 0 [edge](X1,X2,X3) = 2.X1 + 2.X2 + X3 + 2 [empty] = 0 [false] = 2 [s](X) = 2.X [true] = 2 [IF_REACH_1](X1,X2,X3,X4,X5) = X1 + 2.X2 + X3 + 2.X4 + 2.X5 [IF_REACH_2](X1,X2,X3,X4,X5) = 2.X2 + X3 + 2.X4 + 2.X5 [REACH](X1,X2,X3,X4) = 2.X1 + X2 + 2.X3 + 2.X4 + 2 Problem 1.3: SCC Processor: -> Pairs: IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(v,y,union(i,h),empty) IF_REACH_2(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,h) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) ->->-> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h Problem 1.3: Subterm Processor: -> Pairs: IF_REACH_1(false,x,y,edge(u,v,i),h) -> REACH(x,y,i,edge(u,v,h)) REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Projection: pi(IF_REACH_1) = 4 pi(REACH) = 3 Problem 1.3: SCC Processor: -> Pairs: REACH(x,y,edge(u,v,i),h) -> IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h) -> Rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if_reach_1(false,x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) if_reach_1(true,x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) if_reach_2(false,x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) if_reach_2(true,x,y,edge(u,v,i),h) -> true or(false,y) -> y or(true,y) -> true reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) reach(x,y,empty,h) -> false union(edge(x,y,i),h) -> edge(x,y,union(i,h)) union(empty,h) -> h ->Strongly Connected Components: There is no strongly connected component The problem is finite.