/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) QTRSRRRProof [EQUIVALENT, 68 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 0 ms] (4) QTRS (5) DependencyPairsProof [EQUIVALENT, 0 ms] (6) QDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) QDP (9) TransformationProof [EQUIVALENT, 0 ms] (10) QDP (11) TransformationProof [EQUIVALENT, 0 ms] (12) QDP (13) TransformationProof [EQUIVALENT, 0 ms] (14) QDP (15) DependencyGraphProof [EQUIVALENT, 0 ms] (16) QDP (17) NonTerminationLoopProof [COMPLETE, 11 ms] (18) NO ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) head(cons(X, XS)) -> X tail(cons(X, XS)) -> activate(XS) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(activate(x_1)) = x_1 POL(cons(x_1, x_2)) = 2*x_1 + x_2 POL(head(x_1)) = 2*x_1 POL(incr(x_1)) = 2*x_1 POL(n__incr(x_1)) = 2*x_1 POL(n__nats) = 0 POL(n__odds) = 0 POL(nats) = 0 POL(odds) = 0 POL(pairs) = 0 POL(s(x_1)) = 2*x_1 POL(tail(x_1)) = 2 + 2*x_1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: tail(cons(X, XS)) -> activate(XS) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) head(cons(X, XS)) -> X incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(activate(x_1)) = x_1 POL(cons(x_1, x_2)) = 2*x_1 + x_2 POL(head(x_1)) = 1 + 2*x_1 POL(incr(x_1)) = 2*x_1 POL(n__incr(x_1)) = 2*x_1 POL(n__nats) = 0 POL(n__odds) = 0 POL(nats) = 0 POL(odds) = 0 POL(pairs) = 0 POL(s(x_1)) = 2*x_1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: head(cons(X, XS)) -> X ---------------------------------------- (4) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. ---------------------------------------- (5) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (6) Obligation: Q DP problem: The TRS P consists of the following rules: ODDS -> INCR(pairs) ODDS -> PAIRS INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(X)) -> INCR(activate(X)) ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__nats) -> NATS ACTIVATE(n__odds) -> ODDS The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (7) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(X)) -> INCR(activate(X)) ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__odds) -> ODDS ODDS -> INCR(pairs) The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule ODDS -> INCR(pairs) at position [0] we obtained the following new rules [LPAR04]: (ODDS -> INCR(cons(0, n__incr(n__odds))),ODDS -> INCR(cons(0, n__incr(n__odds)))) ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(X)) -> INCR(activate(X)) ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__odds) -> ODDS ODDS -> INCR(cons(0, n__incr(n__odds))) The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule ACTIVATE(n__incr(X)) -> INCR(activate(X)) at position [0] we obtained the following new rules [LPAR04]: (ACTIVATE(n__incr(n__incr(x0))) -> INCR(incr(activate(x0))),ACTIVATE(n__incr(n__incr(x0))) -> INCR(incr(activate(x0)))) (ACTIVATE(n__incr(n__nats)) -> INCR(nats),ACTIVATE(n__incr(n__nats)) -> INCR(nats)) (ACTIVATE(n__incr(n__odds)) -> INCR(odds),ACTIVATE(n__incr(n__odds)) -> INCR(odds)) (ACTIVATE(n__incr(x0)) -> INCR(x0),ACTIVATE(n__incr(x0)) -> INCR(x0)) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__odds) -> ODDS ODDS -> INCR(cons(0, n__incr(n__odds))) ACTIVATE(n__incr(n__incr(x0))) -> INCR(incr(activate(x0))) ACTIVATE(n__incr(n__nats)) -> INCR(nats) ACTIVATE(n__incr(n__odds)) -> INCR(odds) ACTIVATE(n__incr(x0)) -> INCR(x0) The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule ACTIVATE(n__incr(n__nats)) -> INCR(nats) at position [0] we obtained the following new rules [LPAR04]: (ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats))),ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats)))) (ACTIVATE(n__incr(n__nats)) -> INCR(n__nats),ACTIVATE(n__incr(n__nats)) -> INCR(n__nats)) ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__odds) -> ODDS ODDS -> INCR(cons(0, n__incr(n__odds))) ACTIVATE(n__incr(n__incr(x0))) -> INCR(incr(activate(x0))) ACTIVATE(n__incr(n__odds)) -> INCR(odds) ACTIVATE(n__incr(x0)) -> INCR(x0) ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats))) ACTIVATE(n__incr(n__nats)) -> INCR(n__nats) The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVATE(n__incr(X)) -> ACTIVATE(X) ACTIVATE(n__odds) -> ODDS ODDS -> INCR(cons(0, n__incr(n__odds))) INCR(cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__incr(n__incr(x0))) -> INCR(incr(activate(x0))) ACTIVATE(n__incr(n__odds)) -> INCR(odds) ACTIVATE(n__incr(x0)) -> INCR(x0) ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats))) The TRS R consists of the following rules: nats -> cons(0, n__incr(n__nats)) pairs -> cons(0, n__incr(n__odds)) odds -> incr(pairs) incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) incr(X) -> n__incr(X) nats -> n__nats odds -> n__odds activate(n__incr(X)) -> incr(activate(X)) activate(n__nats) -> nats activate(n__odds) -> odds activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = ACTIVATE(n__incr(n__nats)) evaluates to t =ACTIVATE(n__incr(n__nats)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats))) with rule ACTIVATE(n__incr(n__nats)) -> INCR(cons(0, n__incr(n__nats))) at position [] and matcher [ ] INCR(cons(0, n__incr(n__nats))) -> ACTIVATE(n__incr(n__nats)) with rule INCR(cons(X, XS)) -> ACTIVATE(XS) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (18) NO