183.58/183.72 YES 183.58/183.72 183.58/183.72 Problem 1: 183.58/183.72 183.58/183.72 (VAR v_NonEmpty:S x:S xs:S y:S ys:S zs:S) 183.58/183.72 (RULES 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ) 183.58/183.72 183.58/183.72 Problem 1: 183.58/183.72 Valid CTRS Processor: 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 -> The system is a deterministic 3-CTRS. 183.58/183.72 183.58/183.72 Problem 1: 183.58/183.72 183.58/183.72 Dependency Pairs Processor: 183.58/183.72 183.58/183.72 Conditional Termination Problem 1: 183.58/183.72 -> Pairs: 183.58/183.72 APP(cons(x:S,xs:S),ys:S) -> APP(xs:S,ys:S) 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> APP(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(ys:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(zs:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 183.58/183.72 Conditional Termination Problem 2: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> SPLIT(x:S,xs:S) 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> LE(x:S,y:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S) 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> SPLIT(x:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 183.58/183.72 183.58/183.72 The problem is decomposed in 2 subproblems. 183.58/183.72 183.58/183.72 Problem 1.1: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 APP(cons(x:S,xs:S),ys:S) -> APP(xs:S,ys:S) 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> APP(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(ys:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(zs:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 APP(cons(x:S,xs:S),ys:S) -> APP(xs:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(ys:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(zs:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 183.58/183.72 183.58/183.72 The problem is decomposed in 3 subproblems. 183.58/183.72 183.58/183.72 Problem 1.1.1: 183.58/183.72 183.58/183.72 Conditional Subterm Processor: 183.58/183.72 -> Pairs: 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Projection: 183.58/183.72 pi(LE) = 1 183.58/183.72 183.58/183.72 Problem 1.1.1: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 Empty 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 There is no strongly connected component 183.58/183.72 183.58/183.72 The problem is finite. 183.58/183.72 183.58/183.72 Problem 1.1.2: 183.58/183.72 183.58/183.72 Conditional Subterm Processor: 183.58/183.72 -> Pairs: 183.58/183.72 APP(cons(x:S,xs:S),ys:S) -> APP(xs:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Projection: 183.58/183.72 pi(APP) = 1 183.58/183.72 183.58/183.72 Problem 1.1.2: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 Empty 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 There is no strongly connected component 183.58/183.72 183.58/183.72 The problem is finite. 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 Ohlebusch Transformation Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(ys:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> QSORT(zs:S) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 -> New Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U25(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U25(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(ys:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> New Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U25(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U25(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(ys:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U25(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U25(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(ys:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 Reduction Pair Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U25(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U25(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(ys:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 -> Usable rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 ->Interpretation type: 183.58/183.72 Linear 183.58/183.72 ->Coefficients: 183.58/183.72 Natural Numbers 183.58/183.72 ->Dimension: 183.58/183.72 1 183.58/183.72 ->Bound: 183.58/183.72 2 183.58/183.72 ->Interpretation: 183.58/183.72 183.58/183.72 [app](X1,X2) = X1 + X2 183.58/183.72 [le](X1,X2) = 2 183.58/183.72 [qsort](X) = 2.X + 2 183.58/183.72 [split](X1,X2) = X2 + 2 183.58/183.72 [0] = 2 183.58/183.72 [cons](X1,X2) = X2 + 2 183.58/183.72 [false] = 2 183.58/183.72 [nil] = 0 183.58/183.72 [pair](X1,X2) = X1 + X2 + 2 183.58/183.72 [s](X) = 2.X + 2 183.58/183.72 [true] = 2 183.58/183.72 [QSORT](X) = 2.X + 2 183.58/183.72 [U20](X1,X2,X3) = 2.X1 + 2 183.58/183.72 [U21](X1,X2,X3,X4) = X1 + 2 183.58/183.72 [U22](X1,X2,X3,X4,X5,X6) = X1 + X3 + X6 + 2 183.58/183.72 [U23](X1,X2,X3,X4) = X1 + 2 183.58/183.72 [U24](X1,X2,X3,X4,X5,X6) = 2.X1 + X3 + X6 183.58/183.72 [U25](X1,X2,X3) = 2.X1 + 1 183.58/183.72 [U26](X1,X2,X3) = 2.X1 + 2 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U25(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(ys:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 Reduction Pair Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> U26(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 -> Usable rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 ->Interpretation type: 183.58/183.72 Linear 183.58/183.72 ->Coefficients: 183.58/183.72 Natural Numbers 183.58/183.72 ->Dimension: 183.58/183.72 1 183.58/183.72 ->Bound: 183.58/183.72 2 183.58/183.72 ->Interpretation: 183.58/183.72 183.58/183.72 [app](X1,X2) = X1 + X2 183.58/183.72 [le](X1,X2) = 1 183.58/183.72 [qsort](X) = 2.X 183.58/183.72 [split](X1,X2) = X1 + X2 + 1 183.58/183.72 [0] = 1 183.58/183.72 [cons](X1,X2) = 2.X1 + X2 + 2 183.58/183.72 [false] = 1 183.58/183.72 [nil] = 0 183.58/183.72 [pair](X1,X2) = X1 + X2 + 1 183.58/183.72 [s](X) = 2.X + 1 183.58/183.72 [true] = 1 183.58/183.72 [QSORT](X) = 2.X + 2 183.58/183.72 [U20](X1,X2,X3) = 2.X1 + 2.X2 + 2 183.58/183.72 [U21](X1,X2,X3,X4) = X1 + 2.X3 + 2 183.58/183.72 [U22](X1,X2,X3,X4,X5,X6) = X1 + X3 + 2.X4 + X6 + 2 183.58/183.72 [U23](X1,X2,X3,X4) = X1 + 2.X3 + 2 183.58/183.72 [U24](X1,X2,X3,X4,X5,X6) = X1 + X3 + 2.X4 + X6 + 2 183.58/183.72 [U26](X1,X2,X3) = 2.X1 + 2.X2 + 2 183.58/183.72 183.58/183.72 Problem 1.1.3: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 U26(pair(ys:S,zs:S),x:S,xs:S) -> QSORT(zs:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> U20(split(x:S,xs:S),x:S,xs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U21(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> U23(split(x:S,ys:S),x:S,y:S,ys:S) 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 U20(pair(ys:S,zs:S),x:S,xs:S) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) 183.58/183.72 U21(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U22(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U22(ffalse,x:S,xs:S,y:S,ys:S,zs:S) -> pair(cons(y:S,xs:S),zs:S) 183.58/183.72 U23(pair(xs:S,zs:S),x:S,y:S,ys:S) -> U24(le(x:S,y:S),x:S,xs:S,y:S,ys:S,zs:S) 183.58/183.72 U24(ttrue,x:S,xs:S,y:S,ys:S,zs:S) -> pair(xs:S,cons(y:S,zs:S)) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 There is no strongly connected component 183.58/183.72 183.58/183.72 The problem is finite. 183.58/183.72 183.58/183.72 Problem 1.2: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 QSORT(cons(x:S,xs:S)) -> SPLIT(x:S,xs:S) 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> LE(x:S,y:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S) 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> SPLIT(x:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 LE(s(x:S),s(y:S)) -> LE(x:S,y:S) 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 ->->Cycle: 183.58/183.72 ->->-> Pairs: 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> SPLIT(x:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 ->->-> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 183.58/183.72 Problem 1.2: 183.58/183.72 183.58/183.72 Conditional Subterm Processor: 183.58/183.72 -> Pairs: 183.58/183.72 SPLIT(x:S,cons(y:S,ys:S)) -> SPLIT(x:S,ys:S) 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Projection: 183.58/183.72 pi(SPLIT) = 2 183.58/183.72 183.58/183.72 Problem 1.2: 183.58/183.72 183.58/183.72 SCC Processor: 183.58/183.72 -> Pairs: 183.58/183.72 Empty 183.58/183.72 -> QPairs: 183.58/183.72 Empty 183.58/183.72 -> Rules: 183.58/183.72 app(cons(x:S,xs:S),ys:S) -> cons(x:S,app(xs:S,ys:S)) 183.58/183.72 app(nil,x:S) -> x:S 183.58/183.72 le(0,x:S) -> ttrue 183.58/183.72 le(s(x:S),0) -> ffalse 183.58/183.72 le(s(x:S),s(y:S)) -> le(x:S,y:S) 183.58/183.72 qsort(cons(x:S,xs:S)) -> app(qsort(ys:S),cons(x:S,qsort(zs:S))) | split(x:S,xs:S) ->* pair(ys:S,zs:S) 183.58/183.72 qsort(nil) -> nil 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(cons(y:S,xs:S),zs:S) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ffalse 183.58/183.72 split(x:S,cons(y:S,ys:S)) -> pair(xs:S,cons(y:S,zs:S)) | split(x:S,ys:S) ->* pair(xs:S,zs:S), le(x:S,y:S) ->* ttrue 183.58/183.72 split(x:S,nil) -> pair(nil,nil) 183.58/183.72 ->Strongly Connected Components: 183.58/183.72 There is no strongly connected component 183.58/183.72 183.58/183.72 The problem is finite. 183.58/183.72 EOF