/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(NON_POLY, ?) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 376 ms] (2) CpxRelTRS (3) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (4) TRS for Loop Detection (5) DecreasingLoopProof [LOWER BOUND(ID), 86 ms] (6) BEST (7) proven lower bound (8) LowerBoundPropagationProof [FINISHED, 0 ms] (9) BOUNDS(n^1, INF) (10) TRS for Loop Detection (11) InfiniteLowerBoundProof [FINISHED, 163.2 s] (12) BOUNDS(INF, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: INNERMOST ---------------------------------------- (3) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (4) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: INNERMOST ---------------------------------------- (5) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence via(0, v, Cons(E(S(y1_0), y), xs), edges) ->^+ via(0, v, xs, edges) gives rise to a decreasing loop by considering the right hand sides subterm at position []. The pumping substitution is [xs / Cons(E(S(y1_0), y), xs)]. The result substitution is [ ]. ---------------------------------------- (6) Complex Obligation (BEST) ---------------------------------------- (7) Obligation: Proved the lower bound n^1 for the following obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: INNERMOST ---------------------------------------- (8) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (9) BOUNDS(n^1, INF) ---------------------------------------- (10) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(INF, INF). The TRS R consists of the following rules: getNodeFromEdge(S(S(x')), E(x, y)) -> y via(u, v, Cons(E(x, y), xs), edges) -> via[Ite](!EQ(u, x), u, v, Cons(E(x, y), xs), edges) getNodeFromEdge(S(0), E(x, y)) -> x member(x', Cons(x, xs)) -> member[Ite](eqEdge(x', x), x', Cons(x, xs)) getNodeFromEdge(0, E(x, y)) -> x eqEdge(E(e11, e12), E(e21, e22)) -> eqEdge[Ite](and(!EQ(e11, e21), !EQ(e12, e22)), e21, e22, e11, e12) via(u, v, Nil, edges) -> Nil notEmpty(Cons(x, xs)) -> True notEmpty(Nil) -> False member(x, Nil) -> False reach(u, v, edges) -> reach[Ite](member(E(u, v), edges), u, v, edges) goal(u, v, edges) -> reach(u, v, edges) The (relative) TRS S consists of the following rules: !EQ(S(x), S(y)) -> !EQ(x, y) !EQ(0, S(y)) -> False !EQ(S(x), 0) -> False !EQ(0, 0) -> True and(False, False) -> False and(True, False) -> False and(False, True) -> False and(True, True) -> True via[Ite](True, u, v, Cons(E(x, y), xs), edges) -> via[Let](u, v, Cons(E(x, y), xs), edges, reach(y, v, edges)) via[Let](u, v, Cons(x, xs), edges, Nil) -> via(u, v, xs, edges) via[Let](u, v, Cons(x, xs), edges, Cons(x', xs')) -> Cons(x, Cons(x', xs')) via[Ite](False, u, v, Cons(x, xs), edges) -> via(u, v, xs, edges) member[Ite](False, x', Cons(x, xs)) -> member(x', xs) reach[Ite](False, u, v, edges) -> via(u, v, edges, edges) reach[Ite](True, u, v, edges) -> Cons(E(u, v), Nil) member[Ite](True, x, xs) -> True eqEdge[Ite](False, e21, e22, e11, e12) -> False eqEdge[Ite](True, e21, e22, e11, e12) -> True Rewrite Strategy: INNERMOST ---------------------------------------- (11) InfiniteLowerBoundProof (FINISHED) The following loop proves infinite runtime complexity: The rewrite sequence reach(0, S(x1_2), Cons(E(0, 0), Nil)) ->^+ via[Let](0, S(x1_2), Cons(E(0, 0), Nil), Cons(E(0, 0), Nil), reach(0, S(x1_2), Cons(E(0, 0), Nil))) gives rise to a decreasing loop by considering the right hand sides subterm at position [4]. The pumping substitution is [ ]. The result substitution is [ ]. ---------------------------------------- (12) BOUNDS(INF, INF)