/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- KILLED proof of /export/starexec/sandbox2/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(1, INF). (0) CpxTRS (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (2) CpxTRS (3) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (4) TRS for Loop Detection (5) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxTRS (7) SlicingProof [LOWER BOUND(ID), 0 ms] (8) CpxTRS (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) typed CpxTrs (11) OrderProof [LOWER BOUND(ID), 0 ms] (12) typed CpxTrs (13) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxWeightedTrs (15) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxTypedWeightedTrs (17) CompletionProof [UPPER BOUND(ID), 0 ms] (18) CpxTypedWeightedCompleteTrs (19) CompletionProof [UPPER BOUND(ID), 0 ms] (20) CpxTypedWeightedCompleteTrs (21) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxTypedWeightedCompleteTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0) -> 0 p(s(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0) -> 0 p(s(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (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 (full) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0) -> 0 p(s(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (5) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (6) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0') -> 0' p(s(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (7) SlicingProof (LOWER BOUND(ID)) Sliced the following arguments: <=/0 <=/1 ---------------------------------------- (8) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=, x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0') -> 0' p(s(x)) -> x S is empty. Rewrite Strategy: FULL ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: TRS: Rules: f(x, y, z) -> g(<=, x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0') -> 0' p(s(x)) -> x Types: f :: 0':s -> 0':s -> 0':s -> 0':s g :: <=:true:false -> 0':s -> 0':s -> 0':s -> 0':s <= :: <=:true:false true :: <=:true:false false :: <=:true:false p :: 0':s -> 0':s 0' :: 0':s s :: 0':s -> 0':s hole_0':s1_0 :: 0':s hole_<=:true:false2_0 :: <=:true:false gen_0':s3_0 :: Nat -> 0':s ---------------------------------------- (11) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: f ---------------------------------------- (12) Obligation: TRS: Rules: f(x, y, z) -> g(<=, x, y, z) g(true, x, y, z) -> z g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) p(0') -> 0' p(s(x)) -> x Types: f :: 0':s -> 0':s -> 0':s -> 0':s g :: <=:true:false -> 0':s -> 0':s -> 0':s -> 0':s <= :: <=:true:false true :: <=:true:false false :: <=:true:false p :: 0':s -> 0':s 0' :: 0':s s :: 0':s -> 0':s hole_0':s1_0 :: 0':s hole_<=:true:false2_0 :: <=:true:false gen_0':s3_0 :: Nat -> 0':s Generator Equations: gen_0':s3_0(0) <=> 0' gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) The following defined symbols remain to be analysed: f ---------------------------------------- (13) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (14) Obligation: The Runtime Complexity (full) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) [1] g(true, x, y, z) -> z [1] g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) [1] p(0) -> 0 [1] p(s(x)) -> x [1] Rewrite Strategy: FULL ---------------------------------------- (15) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (16) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) [1] g(true, x, y, z) -> z [1] g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) [1] p(0) -> 0 [1] p(s(x)) -> x [1] The TRS has the following type information: f :: 0:s -> 0:s -> 0:s -> 0:s g :: <=:true:false -> 0:s -> 0:s -> 0:s -> 0:s <= :: 0:s -> 0:s -> <=:true:false true :: <=:true:false false :: <=:true:false p :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s Rewrite Strategy: FULL ---------------------------------------- (17) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: g(v0, v1, v2, v3) -> null_g [0] p(v0) -> null_p [0] And the following fresh constants: null_g, null_p ---------------------------------------- (18) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) [1] g(true, x, y, z) -> z [1] g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) [1] p(0) -> 0 [1] p(s(x)) -> x [1] g(v0, v1, v2, v3) -> null_g [0] p(v0) -> null_p [0] The TRS has the following type information: f :: 0:s:null_g:null_p -> 0:s:null_g:null_p -> 0:s:null_g:null_p -> 0:s:null_g:null_p g :: <=:true:false -> 0:s:null_g:null_p -> 0:s:null_g:null_p -> 0:s:null_g:null_p -> 0:s:null_g:null_p <= :: 0:s:null_g:null_p -> 0:s:null_g:null_p -> <=:true:false true :: <=:true:false false :: <=:true:false p :: 0:s:null_g:null_p -> 0:s:null_g:null_p 0 :: 0:s:null_g:null_p s :: 0:s:null_g:null_p -> 0:s:null_g:null_p null_g :: 0:s:null_g:null_p null_p :: 0:s:null_g:null_p Rewrite Strategy: FULL ---------------------------------------- (19) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: f_3 p_1 g_4 Due to the following rules being added: g(v0, v1, v2, v3) -> 0 [0] And the following fresh constants: none ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) [1] g(true, x, y, z) -> z [1] g(false, x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)) [1] p(0) -> 0 [1] p(s(x)) -> x [1] g(v0, v1, v2, v3) -> 0 [0] The TRS has the following type information: f :: 0:s -> 0:s -> 0:s -> 0:s g :: <=:true:false -> 0:s -> 0:s -> 0:s -> 0:s <= :: 0:s -> 0:s -> <=:true:false true :: <=:true:false false :: <=:true:false p :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s Rewrite Strategy: FULL ---------------------------------------- (21) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (22) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(x, y, z) -> g(<=(x, y), x, y, z) [1] g(true, x, y, z) -> z [1] g(false, 0, 0, 0) -> f(f(0, 0, 0), f(0, 0, 0), f(0, 0, 0)) [4] g(false, 0, 0, s(x2)) -> f(f(0, 0, s(x2)), f(0, s(x2), 0), f(x2, 0, 0)) [4] g(false, 0, s(x''), 0) -> f(f(0, s(x''), 0), f(x'', 0, 0), f(0, 0, s(x''))) [4] g(false, 0, s(x''), s(x3)) -> f(f(0, s(x''), s(x3)), f(x'', s(x3), 0), f(x3, 0, s(x''))) [4] g(false, s(x'), 0, 0) -> f(f(x', 0, 0), f(0, 0, s(x')), f(0, s(x'), 0)) [4] g(false, s(x'), 0, s(x4)) -> f(f(x', 0, s(x4)), f(0, s(x4), s(x')), f(x4, s(x'), 0)) [4] g(false, s(x'), s(x1), 0) -> f(f(x', s(x1), 0), f(x1, 0, s(x')), f(0, s(x'), s(x1))) [4] g(false, s(x'), s(x1), s(x5)) -> f(f(x', s(x1), s(x5)), f(x1, s(x5), s(x')), f(x5, s(x'), s(x1))) [4] p(0) -> 0 [1] p(s(x)) -> x [1] g(v0, v1, v2, v3) -> 0 [0] The TRS has the following type information: f :: 0:s -> 0:s -> 0:s -> 0:s g :: <=:true:false -> 0:s -> 0:s -> 0:s -> 0:s <= :: 0:s -> 0:s -> <=:true:false true :: <=:true:false false :: <=:true:false p :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s Rewrite Strategy: FULL