/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR m n x y) (RULES app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ) Problem 1: Innermost Equivalent Processor: -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) -> The term rewriting system is non-overlaping or locally confluent overlay system. Therefore, innermost termination implies termination. Problem 1: Dependency Pairs Processor: -> Pairs: APP(add(n,x),y) -> APP(x,y) HIGH(n,add(m,x)) -> IF_HIGH(le(m,n),n,add(m,x)) HIGH(n,add(m,x)) -> LE(m,n) IF_HIGH(false,n,add(m,x)) -> HIGH(n,x) IF_HIGH(true,n,add(m,x)) -> HIGH(n,x) IF_LOW(false,n,add(m,x)) -> LOW(n,x) IF_LOW(true,n,add(m,x)) -> LOW(n,x) LE(s(x),s(y)) -> LE(x,y) LOW(n,add(m,x)) -> IF_LOW(le(m,n),n,add(m,x)) LOW(n,add(m,x)) -> LE(m,n) MINUS(s(x),s(y)) -> MINUS(x,y) QUICKSORT(add(n,x)) -> APP(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) QUICKSORT(add(n,x)) -> HIGH(n,x) QUICKSORT(add(n,x)) -> LOW(n,x) QUICKSORT(add(n,x)) -> QUICKSORT(high(n,x)) QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) QUOT(s(x),s(y)) -> MINUS(x,y) QUOT(s(x),s(y)) -> QUOT(minus(x,y),s(y)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) Problem 1: SCC Processor: -> Pairs: APP(add(n,x),y) -> APP(x,y) HIGH(n,add(m,x)) -> IF_HIGH(le(m,n),n,add(m,x)) HIGH(n,add(m,x)) -> LE(m,n) IF_HIGH(false,n,add(m,x)) -> HIGH(n,x) IF_HIGH(true,n,add(m,x)) -> HIGH(n,x) IF_LOW(false,n,add(m,x)) -> LOW(n,x) IF_LOW(true,n,add(m,x)) -> LOW(n,x) LE(s(x),s(y)) -> LE(x,y) LOW(n,add(m,x)) -> IF_LOW(le(m,n),n,add(m,x)) LOW(n,add(m,x)) -> LE(m,n) MINUS(s(x),s(y)) -> MINUS(x,y) QUICKSORT(add(n,x)) -> APP(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) QUICKSORT(add(n,x)) -> HIGH(n,x) QUICKSORT(add(n,x)) -> LOW(n,x) QUICKSORT(add(n,x)) -> QUICKSORT(high(n,x)) QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) QUOT(s(x),s(y)) -> MINUS(x,y) QUOT(s(x),s(y)) -> QUOT(minus(x,y),s(y)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: MINUS(s(x),s(y)) -> MINUS(x,y) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: QUOT(s(x),s(y)) -> QUOT(minus(x,y),s(y)) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: LE(s(x),s(y)) -> LE(x,y) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: IF_LOW(false,n,add(m,x)) -> LOW(n,x) IF_LOW(true,n,add(m,x)) -> LOW(n,x) LOW(n,add(m,x)) -> IF_LOW(le(m,n),n,add(m,x)) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: HIGH(n,add(m,x)) -> IF_HIGH(le(m,n),n,add(m,x)) IF_HIGH(false,n,add(m,x)) -> HIGH(n,x) IF_HIGH(true,n,add(m,x)) -> HIGH(n,x) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: APP(add(n,x),y) -> APP(x,y) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->->Cycle: ->->-> Pairs: QUICKSORT(add(n,x)) -> QUICKSORT(high(n,x)) QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) The problem is decomposed in 7 subproblems. Problem 1.1: Subterm Processor: -> Pairs: MINUS(s(x),s(y)) -> MINUS(x,y) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Projection: pi(MINUS) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pairs Processor: -> Pairs: QUOT(s(x),s(y)) -> QUOT(minus(x,y),s(y)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) -> Usable rules: minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [minus](X1,X2) = 2.X1 [0] = 0 [s](X) = 2.X + 2 [QUOT](X1,X2) = 2.X1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: LE(s(x),s(y)) -> LE(x,y) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Projection: pi(LE) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: IF_LOW(false,n,add(m,x)) -> LOW(n,x) IF_LOW(true,n,add(m,x)) -> LOW(n,x) LOW(n,add(m,x)) -> IF_LOW(le(m,n),n,add(m,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Projection: pi(IF_LOW) = 3 pi(LOW) = 2 Problem 1.4: SCC Processor: -> Pairs: LOW(n,add(m,x)) -> IF_LOW(le(m,n),n,add(m,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Subterm Processor: -> Pairs: HIGH(n,add(m,x)) -> IF_HIGH(le(m,n),n,add(m,x)) IF_HIGH(false,n,add(m,x)) -> HIGH(n,x) IF_HIGH(true,n,add(m,x)) -> HIGH(n,x) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Projection: pi(HIGH) = 2 pi(IF_HIGH) = 3 Problem 1.5: SCC Processor: -> Pairs: HIGH(n,add(m,x)) -> IF_HIGH(le(m,n),n,add(m,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.6: Subterm Processor: -> Pairs: APP(add(n,x),y) -> APP(x,y) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Projection: pi(APP) = 1 Problem 1.6: SCC Processor: -> Pairs: Empty -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.7: Reduction Pairs Processor: -> Pairs: QUICKSORT(add(n,x)) -> QUICKSORT(high(n,x)) QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) -> Usable rules: high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [high](X1,X2) = 2.X2 [if_high](X1,X2,X3) = 2.X3 [if_low](X1,X2,X3) = 2.X3 [le](X1,X2) = 2.X1 + 2.X2 + 2 [low](X1,X2) = 2.X2 + 1 [0] = 2 [add](X1,X2) = 2.X1 + 2.X2 + 2 [false] = 2 [nil] = 1 [s](X) = 2.X + 2 [true] = 2 [QUICKSORT](X) = 2.X Problem 1.7: SCC Processor: -> Pairs: QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) ->->-> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) Problem 1.7: Reduction Pairs Processor: -> Pairs: QUICKSORT(add(n,x)) -> QUICKSORT(low(n,x)) -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) -> Usable rules: if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [if_low](X1,X2,X3) = X1 + 2.X3 [le](X1,X2) = 1 [low](X1,X2) = 2.X2 + 1 [0] = 0 [add](X1,X2) = 2.X1 + 2.X2 + 2 [false] = 1 [nil] = 2 [s](X) = 0 [true] = 1 [QUICKSORT](X) = 2.X Problem 1.7: SCC Processor: -> Pairs: Empty -> Rules: app(add(n,x),y) -> add(n,app(x,y)) app(nil,y) -> y high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) high(n,nil) -> nil if_high(false,n,add(m,x)) -> add(m,high(n,x)) if_high(true,n,add(m,x)) -> high(n,x) if_low(false,n,add(m,x)) -> low(n,x) if_low(true,n,add(m,x)) -> add(m,low(n,x)) le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) low(n,nil) -> nil minus(s(x),s(y)) -> minus(x,y) minus(x,0) -> x quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort(nil) -> nil quot(0,s(y)) -> 0 quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) ->Strongly Connected Components: There is no strongly connected component The problem is finite.