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