6.01/2.54 YES 6.15/2.55 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 6.15/2.55 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.15/2.55 6.15/2.55 6.15/2.55 Termination w.r.t. Q of the given QTRS could be proven: 6.15/2.55 6.15/2.55 (0) QTRS 6.15/2.55 (1) DependencyPairsProof [EQUIVALENT, 0 ms] 6.15/2.55 (2) QDP 6.15/2.55 (3) DependencyGraphProof [EQUIVALENT, 0 ms] 6.15/2.55 (4) AND 6.15/2.55 (5) QDP 6.15/2.55 (6) UsableRulesProof [EQUIVALENT, 0 ms] 6.15/2.55 (7) QDP 6.15/2.55 (8) QReductionProof [EQUIVALENT, 0 ms] 6.15/2.55 (9) QDP 6.15/2.55 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.15/2.55 (11) YES 6.15/2.55 (12) QDP 6.15/2.55 (13) UsableRulesProof [EQUIVALENT, 0 ms] 6.15/2.55 (14) QDP 6.15/2.55 (15) QReductionProof [EQUIVALENT, 0 ms] 6.15/2.55 (16) QDP 6.15/2.55 (17) TransformationProof [EQUIVALENT, 0 ms] 6.15/2.55 (18) QDP 6.15/2.55 (19) TransformationProof [EQUIVALENT, 0 ms] 6.15/2.55 (20) QDP 6.15/2.55 (21) UsableRulesProof [EQUIVALENT, 0 ms] 6.15/2.55 (22) QDP 6.15/2.55 (23) QReductionProof [EQUIVALENT, 0 ms] 6.15/2.55 (24) QDP 6.15/2.55 (25) TransformationProof [EQUIVALENT, 0 ms] 6.15/2.55 (26) QDP 6.15/2.55 (27) TransformationProof [EQUIVALENT, 0 ms] 6.15/2.55 (28) QDP 6.15/2.55 (29) TransformationProof [EQUIVALENT, 0 ms] 6.15/2.55 (30) QDP 6.15/2.55 (31) UsableRulesProof [EQUIVALENT, 0 ms] 6.15/2.55 (32) QDP 6.15/2.55 (33) QReductionProof [EQUIVALENT, 0 ms] 6.15/2.55 (34) QDP 6.15/2.55 (35) QDPOrderProof [EQUIVALENT, 41 ms] 6.15/2.55 (36) QDP 6.15/2.55 (37) QDPOrderProof [EQUIVALENT, 8 ms] 6.15/2.55 (38) QDP 6.15/2.55 (39) PisEmptyProof [EQUIVALENT, 0 ms] 6.15/2.55 (40) YES 6.15/2.55 (41) QDP 6.15/2.55 (42) UsableRulesProof [EQUIVALENT, 0 ms] 6.15/2.55 (43) QDP 6.15/2.55 (44) QReductionProof [EQUIVALENT, 0 ms] 6.15/2.55 (45) QDP 6.15/2.55 (46) QDPOrderProof [EQUIVALENT, 28 ms] 6.15/2.55 (47) QDP 6.15/2.55 (48) QDPOrderProof [EQUIVALENT, 0 ms] 6.15/2.55 (49) QDP 6.15/2.55 (50) PisEmptyProof [EQUIVALENT, 0 ms] 6.15/2.55 (51) YES 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (0) 6.15/2.55 Obligation: 6.15/2.55 Q restricted rewrite system: 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 quot(0, s(y), s(z)) -> 0 6.15/2.55 quot(s(x), s(y), z) -> quot(x, y, z) 6.15/2.55 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.55 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 plus(zero, y) -> y 6.15/2.55 plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))) 6.15/2.55 id(x) -> x 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 quot(x, 0, s(z)) -> s(quot(x, plus(z, s(0)), s(z))) 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (1) DependencyPairsProof (EQUIVALENT) 6.15/2.55 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (2) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 QUOT(s(x), s(y), z) -> QUOT(x, y, z) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) 6.15/2.55 PLUS(s(x), s(y)) -> IF(gt(x, y), x, y) 6.15/2.55 PLUS(s(x), s(y)) -> GT(x, y) 6.15/2.55 PLUS(s(x), s(y)) -> IF(not(gt(x, y)), id(x), id(y)) 6.15/2.55 PLUS(s(x), s(y)) -> NOT(gt(x, y)) 6.15/2.55 PLUS(s(x), s(y)) -> ID(x) 6.15/2.55 PLUS(s(x), s(y)) -> ID(y) 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 PLUS(s(x), x) -> IF(gt(x, x), id(x), id(x)) 6.15/2.55 PLUS(s(x), x) -> GT(x, x) 6.15/2.55 PLUS(s(x), x) -> ID(x) 6.15/2.55 PLUS(id(x), s(y)) -> PLUS(x, if(gt(s(y), y), y, s(y))) 6.15/2.55 PLUS(id(x), s(y)) -> IF(gt(s(y), y), y, s(y)) 6.15/2.55 PLUS(id(x), s(y)) -> GT(s(y), y) 6.15/2.55 NOT(x) -> IF(x, false, true) 6.15/2.55 GT(s(x), s(y)) -> GT(x, y) 6.15/2.55 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.55 QUOT(x, 0, s(z)) -> PLUS(z, s(0)) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 quot(0, s(y), s(z)) -> 0 6.15/2.55 quot(s(x), s(y), z) -> quot(x, y, z) 6.15/2.55 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.55 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 plus(zero, y) -> y 6.15/2.55 plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))) 6.15/2.55 id(x) -> x 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 quot(x, 0, s(z)) -> s(quot(x, plus(z, s(0)), s(z))) 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (3) DependencyGraphProof (EQUIVALENT) 6.15/2.55 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 14 less nodes. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (4) 6.15/2.55 Complex Obligation (AND) 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (5) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 GT(s(x), s(y)) -> GT(x, y) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 quot(0, s(y), s(z)) -> 0 6.15/2.55 quot(s(x), s(y), z) -> quot(x, y, z) 6.15/2.55 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.55 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 plus(zero, y) -> y 6.15/2.55 plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))) 6.15/2.55 id(x) -> x 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 quot(x, 0, s(z)) -> s(quot(x, plus(z, s(0)), s(z))) 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (6) UsableRulesProof (EQUIVALENT) 6.15/2.55 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (7) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 GT(s(x), s(y)) -> GT(x, y) 6.15/2.55 6.15/2.55 R is empty. 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (8) QReductionProof (EQUIVALENT) 6.15/2.55 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (9) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 GT(s(x), s(y)) -> GT(x, y) 6.15/2.55 6.15/2.55 R is empty. 6.15/2.55 Q is empty. 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (10) QDPSizeChangeProof (EQUIVALENT) 6.15/2.55 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 6.15/2.55 6.15/2.55 From the DPs we obtained the following set of size-change graphs: 6.15/2.55 *GT(s(x), s(y)) -> GT(x, y) 6.15/2.55 The graph contains the following edges 1 > 1, 2 > 2 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (11) 6.15/2.55 YES 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (12) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 quot(0, s(y), s(z)) -> 0 6.15/2.55 quot(s(x), s(y), z) -> quot(x, y, z) 6.15/2.55 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.55 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 plus(zero, y) -> y 6.15/2.55 plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))) 6.15/2.55 id(x) -> x 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 quot(x, 0, s(z)) -> s(quot(x, plus(z, s(0)), s(z))) 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (13) UsableRulesProof (EQUIVALENT) 6.15/2.55 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (14) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (15) QReductionProof (EQUIVALENT) 6.15/2.55 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.15/2.55 6.15/2.55 quot(0, s(x0), s(x1)) 6.15/2.55 quot(s(x0), s(x1), x2) 6.15/2.55 plus(s(x0), s(x1)) 6.15/2.55 plus(s(x0), x0) 6.15/2.55 plus(zero, x0) 6.15/2.55 quot(x0, 0, s(x1)) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (16) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (17) TransformationProof (EQUIVALENT) 6.15/2.55 By rewriting [LPAR04] the rule PLUS(s(x), x) -> PLUS(if(gt(x, x), id(x), id(x)), s(x)) at position [0,1] we obtained the following new rules [LPAR04]: 6.15/2.55 6.15/2.55 (PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)),PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x))) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (18) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (19) TransformationProof (EQUIVALENT) 6.15/2.55 By rewriting [LPAR04] the rule PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))) at position [1,0] we obtained the following new rules [LPAR04]: 6.15/2.55 6.15/2.55 (PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))),PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y)))) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (20) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 not(x) -> if(x, false, true) 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (21) UsableRulesProof (EQUIVALENT) 6.15/2.55 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (22) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 not(x0) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (23) QReductionProof (EQUIVALENT) 6.15/2.55 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.15/2.55 6.15/2.55 not(x0) 6.15/2.55 6.15/2.55 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (24) 6.15/2.55 Obligation: 6.15/2.55 Q DP problem: 6.15/2.55 The TRS P consists of the following rules: 6.15/2.55 6.15/2.55 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)) 6.15/2.55 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))) 6.15/2.55 6.15/2.55 The TRS R consists of the following rules: 6.15/2.55 6.15/2.55 gt(s(x), zero) -> true 6.15/2.55 gt(zero, y) -> false 6.15/2.55 gt(s(x), s(y)) -> gt(x, y) 6.15/2.55 if(true, x, y) -> x 6.15/2.55 if(false, x, y) -> y 6.15/2.55 id(x) -> x 6.15/2.55 6.15/2.55 The set Q consists of the following terms: 6.15/2.55 6.15/2.55 id(x0) 6.15/2.55 if(true, x0, x1) 6.15/2.55 if(false, x0, x1) 6.15/2.55 gt(s(x0), zero) 6.15/2.55 gt(zero, x0) 6.15/2.55 gt(s(x0), s(x1)) 6.15/2.55 6.15/2.55 We have to consider all minimal (P,Q,R)-chains. 6.15/2.55 ---------------------------------------- 6.15/2.55 6.15/2.55 (25) TransformationProof (EQUIVALENT) 6.15/2.55 By rewriting [LPAR04] the rule PLUS(s(x), x) -> PLUS(if(gt(x, x), x, id(x)), s(x)) at position [0,2] we obtained the following new rules [LPAR04]: 6.15/2.55 6.15/2.55 (PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)),PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x))) 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (26) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))) 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 id(x) -> x 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (27) TransformationProof (EQUIVALENT) 6.15/2.56 By rewriting [LPAR04] the rule PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), id(x), id(y))) at position [1,1] we obtained the following new rules [LPAR04]: 6.15/2.56 6.15/2.56 (PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, id(y))),PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, id(y)))) 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (28) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, id(y))) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 id(x) -> x 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (29) TransformationProof (EQUIVALENT) 6.15/2.56 By rewriting [LPAR04] the rule PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, id(y))) at position [1,2] we obtained the following new rules [LPAR04]: 6.15/2.56 6.15/2.56 (PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)),PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y))) 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (30) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 id(x) -> x 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (31) UsableRulesProof (EQUIVALENT) 6.15/2.56 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (32) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (33) QReductionProof (EQUIVALENT) 6.15/2.56 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.15/2.56 6.15/2.56 id(x0) 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (34) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (35) QDPOrderProof (EQUIVALENT) 6.15/2.56 We use the reduction pair processor [LPAR04,JAR06]. 6.15/2.56 6.15/2.56 6.15/2.56 The following pairs can be oriented strictly and are deleted. 6.15/2.56 6.15/2.56 PLUS(s(x), x) -> PLUS(if(gt(x, x), x, x), s(x)) 6.15/2.56 The remaining pairs can at least be oriented weakly. 6.15/2.56 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(PLUS(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(s(x_1)) = [[-I]] + [[1A]] * x_1 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(if(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 + [[0A]] * x_3 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(gt(x_1, x_2)) = [[-I]] + [[3A]] * x_1 + [[-I]] * x_2 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(false) = [[0A]] 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(true) = [[5A]] 6.15/2.56 >>> 6.15/2.56 6.15/2.56 <<< 6.15/2.56 POL(zero) = [[2A]] 6.15/2.56 >>> 6.15/2.56 6.15/2.56 6.15/2.56 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.15/2.56 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (36) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (37) QDPOrderProof (EQUIVALENT) 6.15/2.56 We use the reduction pair processor [LPAR04,JAR06]. 6.15/2.56 6.15/2.56 6.15/2.56 The following pairs can be oriented strictly and are deleted. 6.15/2.56 6.15/2.56 PLUS(s(x), s(y)) -> PLUS(if(gt(x, y), x, y), if(if(gt(x, y), false, true), x, y)) 6.15/2.56 The remaining pairs can at least be oriented weakly. 6.15/2.56 Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: 6.15/2.56 6.15/2.56 POL( PLUS_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} 6.15/2.56 POL( if_3(x_1, ..., x_3) ) = x_2 + x_3 6.15/2.56 POL( gt_2(x_1, x_2) ) = 0 6.15/2.56 POL( s_1(x_1) ) = 2x_1 + 1 6.15/2.56 POL( zero ) = 0 6.15/2.56 POL( true ) = 0 6.15/2.56 POL( false ) = 0 6.15/2.56 6.15/2.56 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.15/2.56 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (38) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 P is empty. 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (39) PisEmptyProof (EQUIVALENT) 6.15/2.56 The TRS P is empty. Hence, there is no (P,Q,R) chain. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (40) 6.15/2.56 YES 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (41) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.56 QUOT(s(x), s(y), z) -> QUOT(x, y, z) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 quot(0, s(y), s(z)) -> 0 6.15/2.56 quot(s(x), s(y), z) -> quot(x, y, z) 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))) 6.15/2.56 id(x) -> x 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 not(x) -> if(x, false, true) 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 quot(x, 0, s(z)) -> s(quot(x, plus(z, s(0)), s(z))) 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 quot(0, s(x0), s(x1)) 6.15/2.56 quot(s(x0), s(x1), x2) 6.15/2.56 plus(s(x0), s(x1)) 6.15/2.56 plus(s(x0), x0) 6.15/2.56 plus(zero, x0) 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 not(x0) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 quot(x0, 0, s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (42) UsableRulesProof (EQUIVALENT) 6.15/2.56 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (43) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.56 QUOT(s(x), s(y), z) -> QUOT(x, y, z) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 id(x) -> x 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 not(x) -> if(x, false, true) 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 quot(0, s(x0), s(x1)) 6.15/2.56 quot(s(x0), s(x1), x2) 6.15/2.56 plus(s(x0), s(x1)) 6.15/2.56 plus(s(x0), x0) 6.15/2.56 plus(zero, x0) 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 not(x0) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 quot(x0, 0, s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (44) QReductionProof (EQUIVALENT) 6.15/2.56 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.15/2.56 6.15/2.56 quot(0, s(x0), s(x1)) 6.15/2.56 quot(s(x0), s(x1), x2) 6.15/2.56 quot(x0, 0, s(x1)) 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (45) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.56 QUOT(s(x), s(y), z) -> QUOT(x, y, z) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 id(x) -> x 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 not(x) -> if(x, false, true) 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 plus(s(x0), s(x1)) 6.15/2.56 plus(s(x0), x0) 6.15/2.56 plus(zero, x0) 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 not(x0) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (46) QDPOrderProof (EQUIVALENT) 6.15/2.56 We use the reduction pair processor [LPAR04,JAR06]. 6.15/2.56 6.15/2.56 6.15/2.56 The following pairs can be oriented strictly and are deleted. 6.15/2.56 6.15/2.56 QUOT(s(x), s(y), z) -> QUOT(x, y, z) 6.15/2.56 The remaining pairs can at least be oriented weakly. 6.15/2.56 Used ordering: Combined order from the following AFS and order. 6.15/2.56 QUOT(x1, x2, x3) = x1 6.15/2.56 6.15/2.56 s(x1) = s(x1) 6.15/2.56 6.15/2.56 6.15/2.56 Knuth-Bendix order [KBO] with precedence:trivial 6.15/2.56 6.15/2.56 and weight map: 6.15/2.56 6.15/2.56 s_1=1 6.15/2.56 dummyConstant=1 6.15/2.56 6.15/2.56 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.15/2.56 none 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (47) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 The TRS P consists of the following rules: 6.15/2.56 6.15/2.56 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.56 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 id(x) -> x 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 not(x) -> if(x, false, true) 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 plus(s(x0), s(x1)) 6.15/2.56 plus(s(x0), x0) 6.15/2.56 plus(zero, x0) 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 not(x0) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (48) QDPOrderProof (EQUIVALENT) 6.15/2.56 We use the reduction pair processor [LPAR04,JAR06]. 6.15/2.56 6.15/2.56 6.15/2.56 The following pairs can be oriented strictly and are deleted. 6.15/2.56 6.15/2.56 QUOT(x, 0, s(z)) -> QUOT(x, plus(z, s(0)), s(z)) 6.15/2.56 The remaining pairs can at least be oriented weakly. 6.15/2.56 Used ordering: Combined order from the following AFS and order. 6.15/2.56 QUOT(x1, x2, x3) = x2 6.15/2.56 6.15/2.56 0 = 0 6.15/2.56 6.15/2.56 plus(x1, x2) = x2 6.15/2.56 6.15/2.56 s(x1) = s 6.15/2.56 6.15/2.56 6.15/2.56 Knuth-Bendix order [KBO] with precedence:trivial 6.15/2.56 6.15/2.56 and weight map: 6.15/2.56 6.15/2.56 s=1 6.15/2.56 0=2 6.15/2.56 6.15/2.56 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.15/2.56 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 6.15/2.56 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (49) 6.15/2.56 Obligation: 6.15/2.56 Q DP problem: 6.15/2.56 P is empty. 6.15/2.56 The TRS R consists of the following rules: 6.15/2.56 6.15/2.56 plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))) 6.15/2.56 plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)) 6.15/2.56 plus(zero, y) -> y 6.15/2.56 gt(zero, y) -> false 6.15/2.56 gt(s(x), s(y)) -> gt(x, y) 6.15/2.56 id(x) -> x 6.15/2.56 if(true, x, y) -> x 6.15/2.56 if(false, x, y) -> y 6.15/2.56 gt(s(x), zero) -> true 6.15/2.56 not(x) -> if(x, false, true) 6.15/2.56 6.15/2.56 The set Q consists of the following terms: 6.15/2.56 6.15/2.56 plus(s(x0), s(x1)) 6.15/2.56 plus(s(x0), x0) 6.15/2.56 plus(zero, x0) 6.15/2.56 id(x0) 6.15/2.56 if(true, x0, x1) 6.15/2.56 if(false, x0, x1) 6.15/2.56 not(x0) 6.15/2.56 gt(s(x0), zero) 6.15/2.56 gt(zero, x0) 6.15/2.56 gt(s(x0), s(x1)) 6.15/2.56 6.15/2.56 We have to consider all minimal (P,Q,R)-chains. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (50) PisEmptyProof (EQUIVALENT) 6.15/2.56 The TRS P is empty. Hence, there is no (P,Q,R) chain. 6.15/2.56 ---------------------------------------- 6.15/2.56 6.15/2.56 (51) 6.15/2.56 YES 6.15/2.61 EOF