/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- NO proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be disproven: (0) QTRS (1) AAECC Innermost [EQUIVALENT, 0 ms] (2) QTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) QDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) QDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) QDP (10) QReductionProof [EQUIVALENT, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) MNOCProof [EQUIVALENT, 0 ms] (16) QDP (17) NonLoopProof [COMPLETE, 4791 ms] (18) NO ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff Q is empty. ---------------------------------------- (1) AAECC Innermost (EQUIVALENT) We have applied [NOC,AAECCNOC] to switch to innermost. The TRS R 1 is isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff The TRS R 2 is f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) The signature Sigma is {f_2, cond_3} ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff The set Q consists of the following terms: f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (4) Obligation: Q DP problem: The TRS P consists of the following rules: F(x, y) -> COND(and(isNat(x), isNat(y)), x, y) F(x, y) -> AND(isNat(x), isNat(y)) F(x, y) -> ISNAT(x) F(x, y) -> ISNAT(y) COND(tt, x, y) -> F(s(x), s(y)) ISNAT(s(x)) -> ISNAT(x) The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff The set Q consists of the following terms: f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(s(x)) -> ISNAT(x) The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff The set Q consists of the following terms: f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) 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. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(s(x)) -> ISNAT(x) R is empty. The set Q consists of the following terms: f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(s(x)) -> ISNAT(x) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *ISNAT(s(x)) -> ISNAT(x) The graph contains the following edges 1 > 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: COND(tt, x, y) -> F(s(x), s(y)) F(x, y) -> COND(and(isNat(x), isNat(y)), x, y) The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff The set Q consists of the following terms: f(x0, x1) cond(tt, x0, x1) isNat(s(x0)) isNat(0) and(tt, tt) and(ff, x0) and(x0, ff) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: COND(tt, x, y) -> F(s(x), s(y)) F(x, y) -> COND(and(isNat(x), isNat(y)), x, y) The TRS R consists of the following rules: f(x, y) -> cond(and(isNat(x), isNat(y)), x, y) cond(tt, x, y) -> f(s(x), s(y)) isNat(s(x)) -> isNat(x) isNat(0) -> tt and(tt, tt) -> tt and(ff, x) -> ff and(x, ff) -> ff Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (17) NonLoopProof (COMPLETE) By Theorem 8 [NONLOOP] we deduce infiniteness of the QDP. We apply the theorem with m = 1, b = 1, σ' = [ ], and μ' = [ ] on the rule COND(tt, zr0, zr2)[zr0 / s(zr0), zr2 / s(zr2)]^n[zr0 / 0, zr2 / 0] -> COND(tt, s(zr0), s(zr2))[zr0 / s(zr0), zr2 / s(zr2)]^n[zr0 / 0, zr2 / 0] This rule is correct for the QDP as the following derivation shows: COND(tt, zr0, zr2)[zr0 / s(zr0), zr2 / s(zr2)]^n[zr0 / 0, zr2 / 0] -> COND(tt, s(zr0), s(zr2))[zr0 / s(zr0), zr2 / s(zr2)]^n[zr0 / 0, zr2 / 0] by Equivalence by Domain Renaming of the lhs with [zl0 / zr0, zl2 / zr2] intermediate steps: Equiv DR (rhs) - Equiv DR (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) COND(tt, zl1, zl3)[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / 0, zl1 / 0, zl3 / 0] -> COND(tt, s(zr1), s(zr3))[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / 0, zl1 / 0, zl3 / 0] by Narrowing at position: [0] intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv DR (rhs) - Equiv DR (lhs) - Equiv DR (rhs) - Equiv DR (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) COND(tt, zl1, zl3)[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / 0, zl1 / 0, zl3 / 0] -> COND(and(tt, tt), s(zr1), s(zr3))[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / 0, zl1 / 0, zl3 / 0] by Narrowing at position: [0,1] intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) - Instantiation - Equiv DR (rhs) - Equiv DR (lhs) - Instantiation - Equiv DR (rhs) - Equiv DR (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) COND(tt, zl1, zl3)[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / x1, zl1 / 0, zl3 / x1] -> COND(and(tt, isNat(x1)), s(zr1), s(zr3))[zr1 / s(zr1), zr3 / s(zr3), zl1 / s(zl1), zl3 / s(zl3)]^n[zr1 / 0, zr3 / x1, zl1 / 0, zl3 / x1] by Narrowing at position: [0,0] intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) - Instantiation - Equiv DR (rhs) - Equiv DR (lhs) - Instantiation - Equiv DR (rhs) - Equiv DR (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) COND(tt, zl1, x0)[zr1 / s(zr1), zl1 / s(zl1), x0 / s(x0)]^n[zr1 / x1, zl1 / x1, x0 / y0] -> COND(and(isNat(x1), isNat(y0)), s(zr1), s(x0))[zr1 / s(zr1), zl1 / s(zl1), x0 / s(x0)]^n[zr1 / x1, zl1 / x1, x0 / y0] by Narrowing at position: [0,1] intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Instantiate mu - Equiv IPS (rhs) - Equiv IPS (lhs) - Instantiate Sigma - Equiv DR (rhs) - Equiv DR (lhs) - Instantiation - Equiv DR (rhs) - Equiv DR (lhs) COND(tt, x0, x1)[x0 / s(x0)]^n[x0 / y0] -> COND(and(isNat(y0), isNat(s(x1))), s(x0), s(x1))[x0 / s(x0)]^n[x0 / y0] by Narrowing at position: [0,0] intermediate steps: Instantiate mu - Instantiate Sigma COND(tt, x0, x1)[ ]^n[ ] -> COND(and(isNat(s(x0)), isNat(s(x1))), s(x0), s(x1))[ ]^n[ ] by Narrowing at position: [] intermediate steps: Instantiation COND(tt, x, y)[ ]^n[ ] -> F(s(x), s(y))[ ]^n[ ] by Rule from TRS P intermediate steps: Instantiation - Instantiation - Instantiation - Instantiation F(x, y)[ ]^n[ ] -> COND(and(isNat(x), isNat(y)), x, y)[ ]^n[ ] by Rule from TRS P intermediate steps: Equiv IPS (rhs) - Equiv IPS (rhs) - Equiv DR (lhs) - Equiv DR (lhs) - Instantiation - Equiv DR (lhs) isNat(s(x))[x / s(x)]^n[ ] -> isNat(x)[ ]^n[ ] by PatternCreation I with delta: [ ], theta: [ ], sigma: [x / s(x)] isNat(s(x))[ ]^n[ ] -> isNat(x)[ ]^n[ ] by Rule from TRS R intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv DR (lhs) - Equiv DR (lhs) - Instantiation - Equiv DR (lhs) isNat(s(x))[x / s(x)]^n[ ] -> isNat(x)[ ]^n[ ] by PatternCreation I with delta: [ ], theta: [ ], sigma: [x / s(x)] isNat(s(x))[ ]^n[ ] -> isNat(x)[ ]^n[ ] by Rule from TRS R intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) isNat(0)[ ]^n[ ] -> tt[ ]^n[ ] by Rule from TRS R intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) isNat(0)[ ]^n[ ] -> tt[ ]^n[ ] by Rule from TRS R intermediate steps: Equiv IPS (rhs) - Equiv IPS (lhs) - Equiv IPS (rhs) - Equiv IPS (lhs) and(tt, tt)[ ]^n[ ] -> tt[ ]^n[ ] by Rule from TRS R ---------------------------------------- (18) NO