KILLED proof of input_xg6KS6Y8a0.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CdtProblem (5) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) typed CpxTrs (11) OrderProof [LOWER BOUND(ID), 11 ms] (12) typed CpxTrs (13) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (14) TRS for Loop Detection (15) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (16) CpxTRS (17) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (18) CdtProblem (19) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CdtProblem (21) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxRelTRS (23) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (24) CpxTRS (25) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxWeightedTrs (27) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CpxTypedWeightedTrs (29) CompletionProof [UPPER BOUND(ID), 0 ms] (30) CpxTypedWeightedCompleteTrs (31) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (32) CpxTypedWeightedCompleteTrs (33) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CpxRNTS (37) CompletionProof [UPPER BOUND(ID), 0 ms] (38) CpxTypedWeightedCompleteTrs (39) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (42) CpxWeightedTrs (43) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CpxTypedWeightedTrs (45) CompletionProof [UPPER BOUND(ID), 0 ms] (46) CpxTypedWeightedCompleteTrs (47) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CpxTypedWeightedCompleteTrs (49) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CpxRNTS (53) CompletionProof [UPPER BOUND(ID), 0 ms] (54) CpxTypedWeightedCompleteTrs (55) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (56) CpxRNTS ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(h(x), y) -> h(f(y, f(x, h(f(a, a))))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(h(x), y) -> h(f(y, f(x, h(f(a, a))))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (4) Obligation: Complexity Dependency Tuples Problem Rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) S tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) K tuples:none Defined Rule Symbols: f_2 Defined Pair Symbols: F_2 Compound Symbols: c_3 ---------------------------------------- (5) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) The (relative) TRS S consists of the following rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Rewrite Strategy: INNERMOST ---------------------------------------- (7) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) The (relative) TRS S consists of the following rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (10) Obligation: Innermost TRS: Rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Types: F :: h:a -> h:a -> c h :: h:a -> h:a c :: c -> c -> c -> c f :: h:a -> h:a -> h:a a :: h:a hole_c1_2 :: c hole_h:a2_2 :: h:a gen_c3_2 :: Nat -> c gen_h:a4_2 :: Nat -> h:a ---------------------------------------- (11) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: F, f They will be analysed ascendingly in the following order: f < F ---------------------------------------- (12) Obligation: Innermost TRS: Rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Types: F :: h:a -> h:a -> c h :: h:a -> h:a c :: c -> c -> c -> c f :: h:a -> h:a -> h:a a :: h:a hole_c1_2 :: c hole_h:a2_2 :: h:a gen_c3_2 :: Nat -> c gen_h:a4_2 :: Nat -> h:a Generator Equations: gen_c3_2(0) <=> hole_c1_2 gen_c3_2(+(x, 1)) <=> c(hole_c1_2, hole_c1_2, gen_c3_2(x)) gen_h:a4_2(0) <=> a gen_h:a4_2(+(x, 1)) <=> h(gen_h:a4_2(x)) The following defined symbols remain to be analysed: f, F They will be analysed ascendingly in the following order: f < F ---------------------------------------- (13) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (14) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) The (relative) TRS S consists of the following rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Rewrite Strategy: INNERMOST ---------------------------------------- (15) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (16) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(h(x), y) -> h(f(y, f(x, h(f(a, a))))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (17) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (18) Obligation: Complexity Dependency Tuples Problem Rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) S tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a))), F(a, a)) K tuples:none Defined Rule Symbols: f_2 Defined Pair Symbols: F_2 Compound Symbols: c_3 ---------------------------------------- (19) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (20) Obligation: Complexity Dependency Tuples Problem Rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) S tuples: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) K tuples:none Defined Rule Symbols: f_2 Defined Pair Symbols: F_2 Compound Symbols: c_2 ---------------------------------------- (21) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (22) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) The (relative) TRS S consists of the following rules: f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) Rewrite Strategy: INNERMOST ---------------------------------------- (23) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (24) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (25) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (26) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) [1] f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (27) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (28) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: F(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) [1] f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) [0] The TRS has the following type information: F :: h:a -> h:a -> c h :: h:a -> h:a c :: c -> c -> c f :: h:a -> h:a -> h:a a :: h:a Rewrite Strategy: INNERMOST ---------------------------------------- (29) 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: F_2 (c) The following functions are completely defined: f_2 Due to the following rules being added: f(v0, v1) -> a [0] And the following fresh constants: const ---------------------------------------- (30) 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(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) [1] f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) [0] f(v0, v1) -> a [0] The TRS has the following type information: F :: h:a -> h:a -> c h :: h:a -> h:a c :: c -> c -> c f :: h:a -> h:a -> h:a a :: h:a const :: c Rewrite Strategy: INNERMOST ---------------------------------------- (31) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (32) 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(h(z0), z1) -> c(F(z1, f(z0, h(a))), F(z0, h(a))) [1] f(h(z0), z1) -> h(f(z1, f(z0, h(a)))) [0] f(v0, v1) -> a [0] The TRS has the following type information: F :: h:a -> h:a -> c h :: h:a -> h:a c :: c -> c -> c f :: h:a -> h:a -> h:a a :: h:a const :: c Rewrite Strategy: INNERMOST ---------------------------------------- (33) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: a => 0 const => 0 ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: F(z, z') -{ 1 }-> 1 + F(z1, f(z0, 1 + 0)) + F(z0, 1 + 0) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 f(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 f(z, z') -{ 0 }-> 1 + f(z1, f(z0, 1 + 0)) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 ---------------------------------------- (35) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: F(z, z') -{ 1 }-> 1 + F(z', f(z - 1, 1 + 0)) + F(z - 1, 1 + 0) :|: z' >= 0, z - 1 >= 0 f(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 f(z, z') -{ 0 }-> 1 + f(z', f(z - 1, 1 + 0)) :|: z' >= 0, z - 1 >= 0 ---------------------------------------- (37) 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: f(v0, v1) -> null_f [0] F(v0, v1) -> null_F [0] And the following fresh constants: null_f, null_F ---------------------------------------- (38) 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(h(z0), z1) -> c(F(z1, f(z0, h(f(a, a)))), F(z0, h(f(a, a)))) [1] f(h(z0), z1) -> h(f(z1, f(z0, h(f(a, a))))) [0] f(v0, v1) -> null_f [0] F(v0, v1) -> null_F [0] The TRS has the following type information: F :: h:a:null_f -> h:a:null_f -> c:null_F h :: h:a:null_f -> h:a:null_f c :: c:null_F -> c:null_F -> c:null_F f :: h:a:null_f -> h:a:null_f -> h:a:null_f a :: h:a:null_f null_f :: h:a:null_f null_F :: c:null_F Rewrite Strategy: INNERMOST ---------------------------------------- (39) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: a => 0 null_f => 0 null_F => 0 ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: F(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 F(z, z') -{ 1 }-> 1 + F(z1, f(z0, 1 + f(0, 0))) + F(z0, 1 + f(0, 0)) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 f(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 f(z, z') -{ 0 }-> 1 + f(z1, f(z0, 1 + f(0, 0))) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (41) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (42) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: f(h(x), y) -> h(f(y, f(x, h(f(a, a))))) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (43) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (44) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: f(h(x), y) -> h(f(y, f(x, h(f(a, a))))) [1] The TRS has the following type information: f :: h:a -> h:a -> h:a h :: h:a -> h:a a :: h:a Rewrite Strategy: INNERMOST ---------------------------------------- (45) 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_2 Due to the following rules being added: f(v0, v1) -> a [0] And the following fresh constants: none ---------------------------------------- (46) 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(h(x), y) -> h(f(y, f(x, h(f(a, a))))) [1] f(v0, v1) -> a [0] The TRS has the following type information: f :: h:a -> h:a -> h:a h :: h:a -> h:a a :: h:a Rewrite Strategy: INNERMOST ---------------------------------------- (47) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (48) 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(h(x), y) -> h(f(y, f(x, h(a)))) [1] f(v0, v1) -> a [0] The TRS has the following type information: f :: h:a -> h:a -> h:a h :: h:a -> h:a a :: h:a Rewrite Strategy: INNERMOST ---------------------------------------- (49) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: a => 0 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: f(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 f(z, z') -{ 1 }-> 1 + f(y, f(x, 1 + 0)) :|: x >= 0, y >= 0, z = 1 + x, z' = y ---------------------------------------- (51) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: f(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 f(z, z') -{ 1 }-> 1 + f(z', f(z - 1, 1 + 0)) :|: z - 1 >= 0, z' >= 0 ---------------------------------------- (53) 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: f(v0, v1) -> null_f [0] And the following fresh constants: null_f ---------------------------------------- (54) 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(h(x), y) -> h(f(y, f(x, h(f(a, a))))) [1] f(v0, v1) -> null_f [0] The TRS has the following type information: f :: h:a:null_f -> h:a:null_f -> h:a:null_f h :: h:a:null_f -> h:a:null_f a :: h:a:null_f null_f :: h:a:null_f Rewrite Strategy: INNERMOST ---------------------------------------- (55) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: a => 0 null_f => 0 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: f(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 f(z, z') -{ 1 }-> 1 + f(y, f(x, 1 + f(0, 0))) :|: x >= 0, y >= 0, z = 1 + x, z' = y Only complete derivations are relevant for the runtime complexity.