/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^1)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). (0) CpxTRS (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 0 ms] (2) CpxTRS (3) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 1 ms] (6) CdtProblem (7) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CdtProblem (9) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CdtProblem (11) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 40 ms] (12) CdtProblem (13) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] (14) BOUNDS(1, 1) (15) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxTRS (17) SlicingProof [LOWER BOUND(ID), 0 ms] (18) CpxTRS (19) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (20) typed CpxTrs (21) OrderProof [LOWER BOUND(ID), 0 ms] (22) typed CpxTrs (23) RewriteLemmaProof [LOWER BOUND(ID), 411 ms] (24) proven lower bound (25) LowerBoundPropagationProof [FINISHED, 0 ms] (26) BOUNDS(n^1, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). The TRS R consists of the following rules: :(:(x, y), z) -> :(x, :(y, z)) :(+(x, y), z) -> +(:(x, z), :(y, z)) :(z, +(x, f(y))) -> :(g(z, y), +(x, a)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) The TRS does not nest defined symbols. Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: :(:(x, y), z) -> :(x, :(y, z)) ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: :(+(x, y), z) -> +(:(x, z), :(y, z)) :(z, +(x, f(y))) -> :(g(z, y), +(x, a)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (3) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. As the TRS does not nest defined symbols, we have rc = irc. ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: :(+(x, y), z) -> +(:(x, z), :(y, z)) :(z, +(x, f(y))) -> :(g(z, y), +(x, a)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (5) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: :(+(z0, z1), z2) -> +(:(z0, z2), :(z1, z2)) :(z0, +(z1, f(z2))) -> :(g(z0, z2), +(z1, a)) Tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) :'(z0, +(z1, f(z2))) -> c1(:'(g(z0, z2), +(z1, a))) S tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) :'(z0, +(z1, f(z2))) -> c1(:'(g(z0, z2), +(z1, a))) K tuples:none Defined Rule Symbols: :_2 Defined Pair Symbols: :'_2 Compound Symbols: c_2, c1_1 ---------------------------------------- (7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: :'(z0, +(z1, f(z2))) -> c1(:'(g(z0, z2), +(z1, a))) ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: :(+(z0, z1), z2) -> +(:(z0, z2), :(z1, z2)) :(z0, +(z1, f(z2))) -> :(g(z0, z2), +(z1, a)) Tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) S tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) K tuples:none Defined Rule Symbols: :_2 Defined Pair Symbols: :'_2 Compound Symbols: c_2 ---------------------------------------- (9) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: :(+(z0, z1), z2) -> +(:(z0, z2), :(z1, z2)) :(z0, +(z1, f(z2))) -> :(g(z0, z2), +(z1, a)) ---------------------------------------- (10) Obligation: Complexity Dependency Tuples Problem Rules:none Tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) S tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) K tuples:none Defined Rule Symbols:none Defined Pair Symbols: :'_2 Compound Symbols: c_2 ---------------------------------------- (11) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) We considered the (Usable) Rules:none And the Tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) The order we found is given by the following interpretation: Polynomial interpretation : POL(+(x_1, x_2)) = [1] + x_1 + x_2 POL(:'(x_1, x_2)) = x_1 POL(c(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (12) Obligation: Complexity Dependency Tuples Problem Rules:none Tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) S tuples:none K tuples: :'(+(z0, z1), z2) -> c(:'(z0, z2), :'(z1, z2)) Defined Rule Symbols:none Defined Pair Symbols: :'_2 Compound Symbols: c_2 ---------------------------------------- (13) SIsEmptyProof (BOTH BOUNDS(ID, ID)) The set S is empty ---------------------------------------- (14) BOUNDS(1, 1) ---------------------------------------- (15) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (16) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: :(:(x, y), z) -> :(x, :(y, z)) :(+'(x, y), z) -> +'(:(x, z), :(y, z)) :(z, +'(x, f(y))) -> :(g(z, y), +'(x, a)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (17) SlicingProof (LOWER BOUND(ID)) Sliced the following arguments: f/0 g/0 g/1 ---------------------------------------- (18) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: :(:(x, y), z) -> :(x, :(y, z)) :(+'(x, y), z) -> +'(:(x, z), :(y, z)) :(z, +'(x, f)) -> :(g, +'(x, a)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (19) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (20) Obligation: TRS: Rules: :(:(x, y), z) -> :(x, :(y, z)) :(+'(x, y), z) -> +'(:(x, z), :(y, z)) :(z, +'(x, f)) -> :(g, +'(x, a)) Types: : :: +':f:g:a -> +':f:g:a -> +':f:g:a +' :: +':f:g:a -> +':f:g:a -> +':f:g:a f :: +':f:g:a g :: +':f:g:a a :: +':f:g:a hole_+':f:g:a1_0 :: +':f:g:a gen_+':f:g:a2_0 :: Nat -> +':f:g:a ---------------------------------------- (21) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: : ---------------------------------------- (22) Obligation: TRS: Rules: :(:(x, y), z) -> :(x, :(y, z)) :(+'(x, y), z) -> +'(:(x, z), :(y, z)) :(z, +'(x, f)) -> :(g, +'(x, a)) Types: : :: +':f:g:a -> +':f:g:a -> +':f:g:a +' :: +':f:g:a -> +':f:g:a -> +':f:g:a f :: +':f:g:a g :: +':f:g:a a :: +':f:g:a hole_+':f:g:a1_0 :: +':f:g:a gen_+':f:g:a2_0 :: Nat -> +':f:g:a Generator Equations: gen_+':f:g:a2_0(0) <=> f gen_+':f:g:a2_0(+(x, 1)) <=> +'(gen_+':f:g:a2_0(x), f) The following defined symbols remain to be analysed: : ---------------------------------------- (23) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: :(gen_+':f:g:a2_0(+(1, n4_0)), gen_+':f:g:a2_0(b)) -> *3_0, rt in Omega(n4_0) Induction Base: :(gen_+':f:g:a2_0(+(1, 0)), gen_+':f:g:a2_0(b)) Induction Step: :(gen_+':f:g:a2_0(+(1, +(n4_0, 1))), gen_+':f:g:a2_0(b)) ->_R^Omega(1) +'(:(gen_+':f:g:a2_0(+(1, n4_0)), gen_+':f:g:a2_0(b)), :(f, gen_+':f:g:a2_0(b))) ->_IH +'(*3_0, :(f, gen_+':f:g:a2_0(b))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (24) Obligation: Proved the lower bound n^1 for the following obligation: TRS: Rules: :(:(x, y), z) -> :(x, :(y, z)) :(+'(x, y), z) -> +'(:(x, z), :(y, z)) :(z, +'(x, f)) -> :(g, +'(x, a)) Types: : :: +':f:g:a -> +':f:g:a -> +':f:g:a +' :: +':f:g:a -> +':f:g:a -> +':f:g:a f :: +':f:g:a g :: +':f:g:a a :: +':f:g:a hole_+':f:g:a1_0 :: +':f:g:a gen_+':f:g:a2_0 :: Nat -> +':f:g:a Generator Equations: gen_+':f:g:a2_0(0) <=> f gen_+':f:g:a2_0(+(x, 1)) <=> +'(gen_+':f:g:a2_0(x), f) The following defined symbols remain to be analysed: : ---------------------------------------- (25) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (26) BOUNDS(n^1, INF)