72.29/72.45 YES 72.29/72.45 72.29/72.45 Problem 1: 72.29/72.45 72.29/72.45 (VAR v_NonEmpty:S x:S x':S y:S y':S z:S) 72.29/72.45 (RULES 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ) 72.29/72.45 72.29/72.45 Problem 1: 72.29/72.45 Valid CTRS Processor: 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 -> The system is a deterministic 3-CTRS. 72.29/72.45 72.29/72.45 Problem 1: 72.29/72.45 72.29/72.45 Dependency Pairs Processor: 72.29/72.45 72.29/72.45 Conditional Termination Problem 1: 72.29/72.45 -> Pairs: 72.29/72.45 FIB(s(x:S)) -> PLUS(y:S,z:S) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 72.29/72.45 Conditional Termination Problem 2: 72.29/72.45 -> Pairs: 72.29/72.45 FIB(s(x:S)) -> FIB(x:S) 72.29/72.45 -> QPairs: 72.29/72.45 FIB(s(x:S)) -> PLUS(y:S,z:S) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 72.29/72.45 72.29/72.45 The problem is decomposed in 2 subproblems. 72.29/72.45 72.29/72.45 Problem 1.1: 72.29/72.45 72.29/72.45 SCC Processor: 72.29/72.45 -> Pairs: 72.29/72.45 FIB(s(x:S)) -> PLUS(y:S,z:S) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->Strongly Connected Components: 72.29/72.45 ->->Cycle: 72.29/72.45 ->->-> Pairs: 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 ->->-> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 72.29/72.45 Problem 1.1: 72.29/72.45 72.29/72.45 Simplifying Unifiable Condition Processor: 72.29/72.45 -> Pairs: 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->Transformed Pairs/Rules: 72.29/72.45 ->->Original Pair/Rule: 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 ->-> Transformed Pair/Rule: 72.29/72.45 PLUS(s(x':S),y':S) -> PLUS(x':S,y':S) 72.29/72.45 ->->Original Pair/Rule: 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 ->-> Transformed Pair/Rule: 72.29/72.45 plus(s(x':S),y':S) -> s(plus(x':S,y':S)) 72.29/72.45 ->->Original Pair/Rule: 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->-> Transformed Pair/Rule: 72.29/72.45 plus(0,y':S) -> y':S 72.29/72.45 72.29/72.45 Problem 1.1: 72.29/72.45 72.29/72.45 SCC Processor: 72.29/72.45 -> Pairs: 72.29/72.45 PLUS(s(x':S),y':S) -> PLUS(x':S,y':S) 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(0,y':S) -> y':S 72.29/72.45 plus(s(x':S),y':S) -> s(plus(x':S,y':S)) 72.29/72.45 ->Strongly Connected Components: 72.29/72.45 ->->Cycle: 72.29/72.45 ->->-> Pairs: 72.29/72.45 PLUS(s(x':S),y':S) -> PLUS(x':S,y':S) 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 ->->-> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(0,y':S) -> y':S 72.29/72.45 plus(s(x':S),y':S) -> s(plus(x':S,y':S)) 72.29/72.45 72.29/72.45 Problem 1.1: 72.29/72.45 72.29/72.45 Conditional Subterm Processor: 72.29/72.45 -> Pairs: 72.29/72.45 PLUS(s(x':S),y':S) -> PLUS(x':S,y':S) 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(0,y':S) -> y':S 72.29/72.45 plus(s(x':S),y':S) -> s(plus(x':S,y':S)) 72.29/72.45 ->Projection: 72.29/72.45 pi(PLUS) = 1 72.29/72.45 72.29/72.45 Problem 1.1: 72.29/72.45 72.29/72.45 SCC Processor: 72.29/72.45 -> Pairs: 72.29/72.45 Empty 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(0,y':S) -> y':S 72.29/72.45 plus(s(x':S),y':S) -> s(plus(x':S,y':S)) 72.29/72.45 ->Strongly Connected Components: 72.29/72.45 There is no strongly connected component 72.29/72.45 72.29/72.45 The problem is finite. 72.29/72.45 72.29/72.45 Problem 1.2: 72.29/72.45 72.29/72.45 SCC Processor: 72.29/72.45 -> Pairs: 72.29/72.45 FIB(s(x:S)) -> FIB(x:S) 72.29/72.45 -> QPairs: 72.29/72.45 FIB(s(x:S)) -> PLUS(y:S,z:S) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 PLUS(x:S,y:S) -> PLUS(x':S,y':S) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->Strongly Connected Components: 72.29/72.45 ->->Cycle: 72.29/72.45 ->->-> Pairs: 72.29/72.45 FIB(s(x:S)) -> FIB(x:S) 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 ->->-> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 72.29/72.45 Problem 1.2: 72.29/72.45 72.29/72.45 Conditional Subterm Processor: 72.29/72.45 -> Pairs: 72.29/72.45 FIB(s(x:S)) -> FIB(x:S) 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->Projection: 72.29/72.45 pi(FIB) = 1 72.29/72.45 72.29/72.45 Problem 1.2: 72.29/72.45 72.29/72.45 SCC Processor: 72.29/72.45 -> Pairs: 72.29/72.45 Empty 72.29/72.45 -> QPairs: 72.29/72.45 Empty 72.29/72.45 -> Rules: 72.29/72.45 fib(0) -> pair(0,s(0)) 72.29/72.45 fib(s(x:S)) -> pair(z:S,plus(y:S,z:S)) | fib(x:S) ->* pair(y:S,z:S) 72.29/72.45 plus(x:S,y:S) -> s(plus(x':S,y':S)) | x:S ->* s(x':S), y:S ->* y':S 72.29/72.45 plus(x:S,y:S) -> y':S | x:S ->* 0, y:S ->* y':S 72.29/72.45 ->Strongly Connected Components: 72.29/72.45 There is no strongly connected component 72.29/72.45 72.29/72.45 The problem is finite. 72.29/72.45 EOF