378.69/291.52 WORST_CASE(Omega(n^1), O(n^2)) 378.69/291.53 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 378.69/291.53 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 378.69/291.53 378.69/291.53 378.69/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^2). 378.69/291.53 378.69/291.53 (0) CpxTRS 378.69/291.53 (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 0 ms] 378.69/291.53 (2) CpxTRS 378.69/291.53 (3) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (4) CpxTRS 378.69/291.53 (5) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] 378.69/291.53 (6) CdtProblem 378.69/291.53 (7) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (8) CdtProblem 378.69/291.53 (9) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (10) CdtProblem 378.69/291.53 (11) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 102 ms] 378.69/291.53 (12) CdtProblem 378.69/291.53 (13) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (14) CdtProblem 378.69/291.53 (15) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 124 ms] 378.69/291.53 (16) CdtProblem 378.69/291.53 (17) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (18) CdtProblem 378.69/291.53 (19) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 84 ms] 378.69/291.53 (20) CdtProblem 378.69/291.53 (21) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (22) BOUNDS(1, 1) 378.69/291.53 (23) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (24) CpxTRS 378.69/291.53 (25) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 378.69/291.53 (26) typed CpxTrs 378.69/291.53 (27) OrderProof [LOWER BOUND(ID), 0 ms] 378.69/291.53 (28) typed CpxTrs 378.69/291.53 (29) RewriteLemmaProof [LOWER BOUND(ID), 314 ms] 378.69/291.53 (30) BEST 378.69/291.53 (31) proven lower bound 378.69/291.53 (32) LowerBoundPropagationProof [FINISHED, 0 ms] 378.69/291.53 (33) BOUNDS(n^1, INF) 378.69/291.53 (34) typed CpxTrs 378.69/291.53 (35) RewriteLemmaProof [LOWER BOUND(ID), 18 ms] 378.69/291.53 (36) typed CpxTrs 378.69/291.53 378.69/291.53 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (0) 378.69/291.53 Obligation: 378.69/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^2). 378.69/291.53 378.69/291.53 378.69/291.53 The TRS R consists of the following rules: 378.69/291.53 378.69/291.53 if(true, x, y) -> x 378.69/291.53 if(false, x, y) -> y 378.69/291.53 eq(0, 0) -> true 378.69/291.53 eq(0, s(x)) -> false 378.69/291.53 eq(s(x), 0) -> false 378.69/291.53 eq(s(x), s(y)) -> eq(x, y) 378.69/291.53 app(nil, l) -> l 378.69/291.53 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.53 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.53 mem(x, nil) -> false 378.69/291.53 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.53 ifmem(true, x, l) -> true 378.69/291.53 ifmem(false, x, l) -> mem(x, l) 378.69/291.53 inter(x, nil) -> nil 378.69/291.53 inter(nil, x) -> nil 378.69/291.53 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.53 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.53 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.53 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.53 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.53 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.53 378.69/291.53 S is empty. 378.69/291.53 Rewrite Strategy: FULL 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) 378.69/291.53 The following defined symbols can occur below the 0th argument of ifinter: ifmem, eq, mem 378.69/291.53 The following defined symbols can occur below the 0th argument of ifmem: eq 378.69/291.53 378.69/291.53 Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: 378.69/291.53 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.53 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.53 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.53 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (2) 378.69/291.53 Obligation: 378.69/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 378.69/291.53 378.69/291.53 378.69/291.53 The TRS R consists of the following rules: 378.69/291.53 378.69/291.53 if(true, x, y) -> x 378.69/291.53 if(false, x, y) -> y 378.69/291.53 eq(0, 0) -> true 378.69/291.53 eq(0, s(x)) -> false 378.69/291.53 eq(s(x), 0) -> false 378.69/291.53 eq(s(x), s(y)) -> eq(x, y) 378.69/291.53 app(nil, l) -> l 378.69/291.53 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.53 mem(x, nil) -> false 378.69/291.53 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.53 ifmem(true, x, l) -> true 378.69/291.53 ifmem(false, x, l) -> mem(x, l) 378.69/291.53 inter(x, nil) -> nil 378.69/291.53 inter(nil, x) -> nil 378.69/291.53 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.53 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.53 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.53 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.53 378.69/291.53 S is empty. 378.69/291.53 Rewrite Strategy: FULL 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (3) RcToIrcProof (BOTH BOUNDS(ID, ID)) 378.69/291.53 Converted rc-obligation to irc-obligation. 378.69/291.53 378.69/291.53 The duplicating contexts are: 378.69/291.53 mem([], cons(y, l)) 378.69/291.53 inter(cons([], l1), l2) 378.69/291.53 inter(cons(x, l1), []) 378.69/291.53 inter(l1, cons([], l2)) 378.69/291.53 inter([], cons(x, l2)) 378.69/291.53 378.69/291.53 378.69/291.53 The defined contexts are: 378.69/291.53 ifinter([], x1, x2, x3) 378.69/291.53 ifmem([], x1, x2) 378.69/291.53 378.69/291.53 378.69/291.53 [] just represents basic- or constructor-terms in the following defined contexts: 378.69/291.53 ifmem([], x1, x2) 378.69/291.53 378.69/291.53 378.69/291.53 As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (4) 378.69/291.53 Obligation: 378.69/291.53 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 378.69/291.53 378.69/291.53 378.69/291.53 The TRS R consists of the following rules: 378.69/291.53 378.69/291.53 if(true, x, y) -> x 378.69/291.53 if(false, x, y) -> y 378.69/291.53 eq(0, 0) -> true 378.69/291.53 eq(0, s(x)) -> false 378.69/291.53 eq(s(x), 0) -> false 378.69/291.53 eq(s(x), s(y)) -> eq(x, y) 378.69/291.53 app(nil, l) -> l 378.69/291.53 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.53 mem(x, nil) -> false 378.69/291.53 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.53 ifmem(true, x, l) -> true 378.69/291.53 ifmem(false, x, l) -> mem(x, l) 378.69/291.53 inter(x, nil) -> nil 378.69/291.53 inter(nil, x) -> nil 378.69/291.53 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.53 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.53 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.53 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.53 378.69/291.53 S is empty. 378.69/291.53 Rewrite Strategy: INNERMOST 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (5) CpxTrsToCdtProof (UPPER BOUND(ID)) 378.69/291.53 Converted Cpx (relative) TRS to CDT 378.69/291.53 ---------------------------------------- 378.69/291.53 378.69/291.53 (6) 378.69/291.53 Obligation: 378.69/291.53 Complexity Dependency Tuples Problem 378.69/291.53 378.69/291.53 Rules: 378.69/291.53 if(true, z0, z1) -> z0 378.69/291.53 if(false, z0, z1) -> z1 378.69/291.53 eq(0, 0) -> true 378.69/291.53 eq(0, s(z0)) -> false 378.69/291.53 eq(s(z0), 0) -> false 378.69/291.53 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.53 app(nil, z0) -> z0 378.69/291.53 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) 378.69/291.53 mem(z0, nil) -> false 378.69/291.53 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.53 ifmem(true, z0, z1) -> true 378.69/291.53 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.53 inter(z0, nil) -> nil 378.69/291.53 inter(nil, z0) -> nil 378.69/291.53 inter(cons(z0, z1), z2) -> ifinter(mem(z0, z2), z0, z1, z2) 378.69/291.53 inter(z0, cons(z1, z2)) -> ifinter(mem(z1, z0), z1, z2, z0) 378.69/291.54 ifinter(true, z0, z1, z2) -> cons(z0, inter(z1, z2)) 378.69/291.54 ifinter(false, z0, z1, z2) -> inter(z1, z2) 378.69/291.54 Tuples: 378.69/291.54 IF(true, z0, z1) -> c 378.69/291.54 IF(false, z0, z1) -> c1 378.69/291.54 EQ(0, 0) -> c2 378.69/291.54 EQ(0, s(z0)) -> c3 378.69/291.54 EQ(s(z0), 0) -> c4 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(nil, z0) -> c6 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, nil) -> c8 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(true, z0, z1) -> c10 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(z0, nil) -> c12 378.69/291.54 INTER(nil, z0) -> c13 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 IF(true, z0, z1) -> c 378.69/291.54 IF(false, z0, z1) -> c1 378.69/291.54 EQ(0, 0) -> c2 378.69/291.54 EQ(0, s(z0)) -> c3 378.69/291.54 EQ(s(z0), 0) -> c4 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(nil, z0) -> c6 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, nil) -> c8 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(true, z0, z1) -> c10 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(z0, nil) -> c12 378.69/291.54 INTER(nil, z0) -> c13 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 K tuples:none 378.69/291.54 Defined Rule Symbols: if_3, eq_2, app_2, mem_2, ifmem_3, inter_2, ifinter_4 378.69/291.54 378.69/291.54 Defined Pair Symbols: IF_3, EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c, c1, c2, c3, c4, c5_1, c6, c7_1, c8, c9_2, c10, c11_1, c12, c13, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 Removed 10 trailing nodes: 378.69/291.54 INTER(z0, nil) -> c12 378.69/291.54 IF(true, z0, z1) -> c 378.69/291.54 EQ(0, s(z0)) -> c3 378.69/291.54 EQ(0, 0) -> c2 378.69/291.54 IFMEM(true, z0, z1) -> c10 378.69/291.54 APP(nil, z0) -> c6 378.69/291.54 EQ(s(z0), 0) -> c4 378.69/291.54 IF(false, z0, z1) -> c1 378.69/291.54 INTER(nil, z0) -> c13 378.69/291.54 MEM(z0, nil) -> c8 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (8) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 if(true, z0, z1) -> z0 378.69/291.54 if(false, z0, z1) -> z1 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 app(nil, z0) -> z0 378.69/291.54 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 inter(z0, nil) -> nil 378.69/291.54 inter(nil, z0) -> nil 378.69/291.54 inter(cons(z0, z1), z2) -> ifinter(mem(z0, z2), z0, z1, z2) 378.69/291.54 inter(z0, cons(z1, z2)) -> ifinter(mem(z1, z0), z1, z2, z0) 378.69/291.54 ifinter(true, z0, z1, z2) -> cons(z0, inter(z1, z2)) 378.69/291.54 ifinter(false, z0, z1, z2) -> inter(z1, z2) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 K tuples:none 378.69/291.54 Defined Rule Symbols: if_3, eq_2, app_2, mem_2, ifmem_3, inter_2, ifinter_4 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (9) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 The following rules are not usable and were removed: 378.69/291.54 if(true, z0, z1) -> z0 378.69/291.54 if(false, z0, z1) -> z1 378.69/291.54 app(nil, z0) -> z0 378.69/291.54 app(cons(z0, z1), z2) -> cons(z0, app(z1, z2)) 378.69/291.54 inter(z0, nil) -> nil 378.69/291.54 inter(nil, z0) -> nil 378.69/291.54 inter(cons(z0, z1), z2) -> ifinter(mem(z0, z2), z0, z1, z2) 378.69/291.54 inter(z0, cons(z1, z2)) -> ifinter(mem(z1, z0), z1, z2, z0) 378.69/291.54 ifinter(true, z0, z1, z2) -> cons(z0, inter(z1, z2)) 378.69/291.54 ifinter(false, z0, z1, z2) -> inter(z1, z2) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (10) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 K tuples:none 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (11) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 378.69/291.54 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 We considered the (Usable) Rules: 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 And the Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 The order we found is given by the following interpretation: 378.69/291.54 378.69/291.54 Polynomial interpretation : 378.69/291.54 378.69/291.54 POL(0) = [1] 378.69/291.54 POL(APP(x_1, x_2)) = x_1 378.69/291.54 POL(EQ(x_1, x_2)) = 0 378.69/291.54 POL(IFINTER(x_1, x_2, x_3, x_4)) = [1] + x_1 + x_3 + x_4 378.69/291.54 POL(IFMEM(x_1, x_2, x_3)) = 0 378.69/291.54 POL(INTER(x_1, x_2)) = [1] + x_1 + x_2 378.69/291.54 POL(MEM(x_1, x_2)) = 0 378.69/291.54 POL(c11(x_1)) = x_1 378.69/291.54 POL(c14(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c15(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c16(x_1)) = x_1 378.69/291.54 POL(c17(x_1)) = x_1 378.69/291.54 POL(c5(x_1)) = x_1 378.69/291.54 POL(c7(x_1)) = x_1 378.69/291.54 POL(c9(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(cons(x_1, x_2)) = [1] + x_1 + x_2 378.69/291.54 POL(eq(x_1, x_2)) = [1] + x_1 + x_2 378.69/291.54 POL(false) = [1] 378.69/291.54 POL(ifmem(x_1, x_2, x_3)) = [1] + x_2 378.69/291.54 POL(mem(x_1, x_2)) = [1] + x_1 378.69/291.54 POL(nil) = [1] 378.69/291.54 POL(s(x_1)) = [1] + x_1 378.69/291.54 POL(true) = [1] 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (12) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 K tuples: 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (13) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 The following tuples could be moved from S to K by knowledge propagation: 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (14) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 K tuples: 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (15) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) 378.69/291.54 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 We considered the (Usable) Rules:none 378.69/291.54 And the Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 The order we found is given by the following interpretation: 378.69/291.54 378.69/291.54 Polynomial interpretation : 378.69/291.54 378.69/291.54 POL(0) = 0 378.69/291.54 POL(APP(x_1, x_2)) = [2]x_1 + [2]x_1*x_2 + x_1^2 378.69/291.54 POL(EQ(x_1, x_2)) = 0 378.69/291.54 POL(IFINTER(x_1, x_2, x_3, x_4)) = x_4 + [2]x_3*x_4 378.69/291.54 POL(IFMEM(x_1, x_2, x_3)) = x_3 378.69/291.54 POL(INTER(x_1, x_2)) = [2]x_1*x_2 378.69/291.54 POL(MEM(x_1, x_2)) = x_2 378.69/291.54 POL(c11(x_1)) = x_1 378.69/291.54 POL(c14(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c15(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c16(x_1)) = x_1 378.69/291.54 POL(c17(x_1)) = x_1 378.69/291.54 POL(c5(x_1)) = x_1 378.69/291.54 POL(c7(x_1)) = x_1 378.69/291.54 POL(c9(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(cons(x_1, x_2)) = [2] + x_2 378.69/291.54 POL(eq(x_1, x_2)) = [2] 378.69/291.54 POL(false) = 0 378.69/291.54 POL(ifmem(x_1, x_2, x_3)) = [2]x_1 + x_3 + [2]x_3^2 378.69/291.54 POL(mem(x_1, x_2)) = x_2 + [2]x_2^2 378.69/291.54 POL(nil) = 0 378.69/291.54 POL(s(x_1)) = 0 378.69/291.54 POL(true) = 0 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (16) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 K tuples: 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (17) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 The following tuples could be moved from S to K by knowledge propagation: 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (18) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 K tuples: 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (19) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) 378.69/291.54 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 We considered the (Usable) Rules:none 378.69/291.54 And the Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 The order we found is given by the following interpretation: 378.69/291.54 378.69/291.54 Polynomial interpretation : 378.69/291.54 378.69/291.54 POL(0) = 0 378.69/291.54 POL(APP(x_1, x_2)) = [2]x_1 + [2]x_1*x_2 + [2]x_1^2 378.69/291.54 POL(EQ(x_1, x_2)) = x_1*x_2 378.69/291.54 POL(IFINTER(x_1, x_2, x_3, x_4)) = [2]x_4 + [2]x_3*x_4 378.69/291.54 POL(IFMEM(x_1, x_2, x_3)) = [2]x_2*x_3 378.69/291.54 POL(INTER(x_1, x_2)) = [2]x_2 + [2]x_1*x_2 378.69/291.54 POL(MEM(x_1, x_2)) = [2]x_1*x_2 378.69/291.54 POL(c11(x_1)) = x_1 378.69/291.54 POL(c14(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c15(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(c16(x_1)) = x_1 378.69/291.54 POL(c17(x_1)) = x_1 378.69/291.54 POL(c5(x_1)) = x_1 378.69/291.54 POL(c7(x_1)) = x_1 378.69/291.54 POL(c9(x_1, x_2)) = x_1 + x_2 378.69/291.54 POL(cons(x_1, x_2)) = [1] + x_1 + x_2 378.69/291.54 POL(eq(x_1, x_2)) = [1] 378.69/291.54 POL(false) = [2] 378.69/291.54 POL(ifmem(x_1, x_2, x_3)) = [2]x_1 + [2]x_3^2 378.69/291.54 POL(mem(x_1, x_2)) = [2] + [2]x_2^2 378.69/291.54 POL(nil) = 0 378.69/291.54 POL(s(x_1)) = [1] + x_1 378.69/291.54 POL(true) = 0 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (20) 378.69/291.54 Obligation: 378.69/291.54 Complexity Dependency Tuples Problem 378.69/291.54 378.69/291.54 Rules: 378.69/291.54 eq(0, 0) -> true 378.69/291.54 eq(0, s(z0)) -> false 378.69/291.54 eq(s(z0), 0) -> false 378.69/291.54 eq(s(z0), s(z1)) -> eq(z0, z1) 378.69/291.54 mem(z0, nil) -> false 378.69/291.54 mem(z0, cons(z1, z2)) -> ifmem(eq(z0, z1), z0, z2) 378.69/291.54 ifmem(true, z0, z1) -> true 378.69/291.54 ifmem(false, z0, z1) -> mem(z0, z1) 378.69/291.54 Tuples: 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 S tuples:none 378.69/291.54 K tuples: 378.69/291.54 APP(cons(z0, z1), z2) -> c7(APP(z1, z2)) 378.69/291.54 IFINTER(true, z0, z1, z2) -> c16(INTER(z1, z2)) 378.69/291.54 IFINTER(false, z0, z1, z2) -> c17(INTER(z1, z2)) 378.69/291.54 INTER(cons(z0, z1), z2) -> c14(IFINTER(mem(z0, z2), z0, z1, z2), MEM(z0, z2)) 378.69/291.54 INTER(z0, cons(z1, z2)) -> c15(IFINTER(mem(z1, z0), z1, z2, z0), MEM(z1, z0)) 378.69/291.54 MEM(z0, cons(z1, z2)) -> c9(IFMEM(eq(z0, z1), z0, z2), EQ(z0, z1)) 378.69/291.54 IFMEM(false, z0, z1) -> c11(MEM(z0, z1)) 378.69/291.54 EQ(s(z0), s(z1)) -> c5(EQ(z0, z1)) 378.69/291.54 Defined Rule Symbols: eq_2, mem_2, ifmem_3 378.69/291.54 378.69/291.54 Defined Pair Symbols: EQ_2, APP_2, MEM_2, IFMEM_3, INTER_2, IFINTER_4 378.69/291.54 378.69/291.54 Compound Symbols: c5_1, c7_1, c9_2, c11_1, c14_2, c15_2, c16_1, c17_1 378.69/291.54 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (21) SIsEmptyProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 The set S is empty 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (22) 378.69/291.54 BOUNDS(1, 1) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (23) RenamingProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 Renamed function symbols to avoid clashes with predefined symbol. 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (24) 378.69/291.54 Obligation: 378.69/291.54 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 378.69/291.54 378.69/291.54 378.69/291.54 The TRS R consists of the following rules: 378.69/291.54 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 S is empty. 378.69/291.54 Rewrite Strategy: FULL 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (25) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 378.69/291.54 Infered types. 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (26) 378.69/291.54 Obligation: 378.69/291.54 TRS: 378.69/291.54 Rules: 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 Types: 378.69/291.54 if :: true:false -> if -> if -> if 378.69/291.54 true :: true:false 378.69/291.54 false :: true:false 378.69/291.54 eq :: 0':s -> 0':s -> true:false 378.69/291.54 0' :: 0':s 378.69/291.54 s :: 0':s -> 0':s 378.69/291.54 app :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 nil :: nil:cons 378.69/291.54 cons :: 0':s -> nil:cons -> nil:cons 378.69/291.54 mem :: 0':s -> nil:cons -> true:false 378.69/291.54 ifmem :: true:false -> 0':s -> nil:cons -> true:false 378.69/291.54 inter :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 ifinter :: true:false -> 0':s -> nil:cons -> nil:cons -> nil:cons 378.69/291.54 hole_if1_0 :: if 378.69/291.54 hole_true:false2_0 :: true:false 378.69/291.54 hole_0':s3_0 :: 0':s 378.69/291.54 hole_nil:cons4_0 :: nil:cons 378.69/291.54 gen_0':s5_0 :: Nat -> 0':s 378.69/291.54 gen_nil:cons6_0 :: Nat -> nil:cons 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (27) OrderProof (LOWER BOUND(ID)) 378.69/291.54 Heuristically decided to analyse the following defined symbols: 378.69/291.54 eq, app, mem, inter 378.69/291.54 378.69/291.54 They will be analysed ascendingly in the following order: 378.69/291.54 eq < mem 378.69/291.54 app < inter 378.69/291.54 mem < inter 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (28) 378.69/291.54 Obligation: 378.69/291.54 TRS: 378.69/291.54 Rules: 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 Types: 378.69/291.54 if :: true:false -> if -> if -> if 378.69/291.54 true :: true:false 378.69/291.54 false :: true:false 378.69/291.54 eq :: 0':s -> 0':s -> true:false 378.69/291.54 0' :: 0':s 378.69/291.54 s :: 0':s -> 0':s 378.69/291.54 app :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 nil :: nil:cons 378.69/291.54 cons :: 0':s -> nil:cons -> nil:cons 378.69/291.54 mem :: 0':s -> nil:cons -> true:false 378.69/291.54 ifmem :: true:false -> 0':s -> nil:cons -> true:false 378.69/291.54 inter :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 ifinter :: true:false -> 0':s -> nil:cons -> nil:cons -> nil:cons 378.69/291.54 hole_if1_0 :: if 378.69/291.54 hole_true:false2_0 :: true:false 378.69/291.54 hole_0':s3_0 :: 0':s 378.69/291.54 hole_nil:cons4_0 :: nil:cons 378.69/291.54 gen_0':s5_0 :: Nat -> 0':s 378.69/291.54 gen_nil:cons6_0 :: Nat -> nil:cons 378.69/291.54 378.69/291.54 378.69/291.54 Generator Equations: 378.69/291.54 gen_0':s5_0(0) <=> 0' 378.69/291.54 gen_0':s5_0(+(x, 1)) <=> s(gen_0':s5_0(x)) 378.69/291.54 gen_nil:cons6_0(0) <=> nil 378.69/291.54 gen_nil:cons6_0(+(x, 1)) <=> cons(0', gen_nil:cons6_0(x)) 378.69/291.54 378.69/291.54 378.69/291.54 The following defined symbols remain to be analysed: 378.69/291.54 eq, app, mem, inter 378.69/291.54 378.69/291.54 They will be analysed ascendingly in the following order: 378.69/291.54 eq < mem 378.69/291.54 app < inter 378.69/291.54 mem < inter 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (29) RewriteLemmaProof (LOWER BOUND(ID)) 378.69/291.54 Proved the following rewrite lemma: 378.69/291.54 eq(gen_0':s5_0(n8_0), gen_0':s5_0(n8_0)) -> true, rt in Omega(1 + n8_0) 378.69/291.54 378.69/291.54 Induction Base: 378.69/291.54 eq(gen_0':s5_0(0), gen_0':s5_0(0)) ->_R^Omega(1) 378.69/291.54 true 378.69/291.54 378.69/291.54 Induction Step: 378.69/291.54 eq(gen_0':s5_0(+(n8_0, 1)), gen_0':s5_0(+(n8_0, 1))) ->_R^Omega(1) 378.69/291.54 eq(gen_0':s5_0(n8_0), gen_0':s5_0(n8_0)) ->_IH 378.69/291.54 true 378.69/291.54 378.69/291.54 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (30) 378.69/291.54 Complex Obligation (BEST) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (31) 378.69/291.54 Obligation: 378.69/291.54 Proved the lower bound n^1 for the following obligation: 378.69/291.54 378.69/291.54 TRS: 378.69/291.54 Rules: 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 Types: 378.69/291.54 if :: true:false -> if -> if -> if 378.69/291.54 true :: true:false 378.69/291.54 false :: true:false 378.69/291.54 eq :: 0':s -> 0':s -> true:false 378.69/291.54 0' :: 0':s 378.69/291.54 s :: 0':s -> 0':s 378.69/291.54 app :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 nil :: nil:cons 378.69/291.54 cons :: 0':s -> nil:cons -> nil:cons 378.69/291.54 mem :: 0':s -> nil:cons -> true:false 378.69/291.54 ifmem :: true:false -> 0':s -> nil:cons -> true:false 378.69/291.54 inter :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 ifinter :: true:false -> 0':s -> nil:cons -> nil:cons -> nil:cons 378.69/291.54 hole_if1_0 :: if 378.69/291.54 hole_true:false2_0 :: true:false 378.69/291.54 hole_0':s3_0 :: 0':s 378.69/291.54 hole_nil:cons4_0 :: nil:cons 378.69/291.54 gen_0':s5_0 :: Nat -> 0':s 378.69/291.54 gen_nil:cons6_0 :: Nat -> nil:cons 378.69/291.54 378.69/291.54 378.69/291.54 Generator Equations: 378.69/291.54 gen_0':s5_0(0) <=> 0' 378.69/291.54 gen_0':s5_0(+(x, 1)) <=> s(gen_0':s5_0(x)) 378.69/291.54 gen_nil:cons6_0(0) <=> nil 378.69/291.54 gen_nil:cons6_0(+(x, 1)) <=> cons(0', gen_nil:cons6_0(x)) 378.69/291.54 378.69/291.54 378.69/291.54 The following defined symbols remain to be analysed: 378.69/291.54 eq, app, mem, inter 378.69/291.54 378.69/291.54 They will be analysed ascendingly in the following order: 378.69/291.54 eq < mem 378.69/291.54 app < inter 378.69/291.54 mem < inter 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (32) LowerBoundPropagationProof (FINISHED) 378.69/291.54 Propagated lower bound. 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (33) 378.69/291.54 BOUNDS(n^1, INF) 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (34) 378.69/291.54 Obligation: 378.69/291.54 TRS: 378.69/291.54 Rules: 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 Types: 378.69/291.54 if :: true:false -> if -> if -> if 378.69/291.54 true :: true:false 378.69/291.54 false :: true:false 378.69/291.54 eq :: 0':s -> 0':s -> true:false 378.69/291.54 0' :: 0':s 378.69/291.54 s :: 0':s -> 0':s 378.69/291.54 app :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 nil :: nil:cons 378.69/291.54 cons :: 0':s -> nil:cons -> nil:cons 378.69/291.54 mem :: 0':s -> nil:cons -> true:false 378.69/291.54 ifmem :: true:false -> 0':s -> nil:cons -> true:false 378.69/291.54 inter :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 ifinter :: true:false -> 0':s -> nil:cons -> nil:cons -> nil:cons 378.69/291.54 hole_if1_0 :: if 378.69/291.54 hole_true:false2_0 :: true:false 378.69/291.54 hole_0':s3_0 :: 0':s 378.69/291.54 hole_nil:cons4_0 :: nil:cons 378.69/291.54 gen_0':s5_0 :: Nat -> 0':s 378.69/291.54 gen_nil:cons6_0 :: Nat -> nil:cons 378.69/291.54 378.69/291.54 378.69/291.54 Lemmas: 378.69/291.54 eq(gen_0':s5_0(n8_0), gen_0':s5_0(n8_0)) -> true, rt in Omega(1 + n8_0) 378.69/291.54 378.69/291.54 378.69/291.54 Generator Equations: 378.69/291.54 gen_0':s5_0(0) <=> 0' 378.69/291.54 gen_0':s5_0(+(x, 1)) <=> s(gen_0':s5_0(x)) 378.69/291.54 gen_nil:cons6_0(0) <=> nil 378.69/291.54 gen_nil:cons6_0(+(x, 1)) <=> cons(0', gen_nil:cons6_0(x)) 378.69/291.54 378.69/291.54 378.69/291.54 The following defined symbols remain to be analysed: 378.69/291.54 app, mem, inter 378.69/291.54 378.69/291.54 They will be analysed ascendingly in the following order: 378.69/291.54 app < inter 378.69/291.54 mem < inter 378.69/291.54 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (35) RewriteLemmaProof (LOWER BOUND(ID)) 378.69/291.54 Proved the following rewrite lemma: 378.69/291.54 app(gen_nil:cons6_0(n537_0), gen_nil:cons6_0(b)) -> gen_nil:cons6_0(+(n537_0, b)), rt in Omega(1 + n537_0) 378.69/291.54 378.69/291.54 Induction Base: 378.69/291.54 app(gen_nil:cons6_0(0), gen_nil:cons6_0(b)) ->_R^Omega(1) 378.69/291.54 gen_nil:cons6_0(b) 378.69/291.54 378.69/291.54 Induction Step: 378.69/291.54 app(gen_nil:cons6_0(+(n537_0, 1)), gen_nil:cons6_0(b)) ->_R^Omega(1) 378.69/291.54 cons(0', app(gen_nil:cons6_0(n537_0), gen_nil:cons6_0(b))) ->_IH 378.69/291.54 cons(0', gen_nil:cons6_0(+(b, c538_0))) 378.69/291.54 378.69/291.54 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 378.69/291.54 ---------------------------------------- 378.69/291.54 378.69/291.54 (36) 378.69/291.54 Obligation: 378.69/291.54 TRS: 378.69/291.54 Rules: 378.69/291.54 if(true, x, y) -> x 378.69/291.54 if(false, x, y) -> y 378.69/291.54 eq(0', 0') -> true 378.69/291.54 eq(0', s(x)) -> false 378.69/291.54 eq(s(x), 0') -> false 378.69/291.54 eq(s(x), s(y)) -> eq(x, y) 378.69/291.54 app(nil, l) -> l 378.69/291.54 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 378.69/291.54 app(app(l1, l2), l3) -> app(l1, app(l2, l3)) 378.69/291.54 mem(x, nil) -> false 378.69/291.54 mem(x, cons(y, l)) -> ifmem(eq(x, y), x, l) 378.69/291.54 ifmem(true, x, l) -> true 378.69/291.54 ifmem(false, x, l) -> mem(x, l) 378.69/291.54 inter(x, nil) -> nil 378.69/291.54 inter(nil, x) -> nil 378.69/291.54 inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)) 378.69/291.54 inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)) 378.69/291.54 inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2) 378.69/291.54 inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1) 378.69/291.54 ifinter(true, x, l1, l2) -> cons(x, inter(l1, l2)) 378.69/291.54 ifinter(false, x, l1, l2) -> inter(l1, l2) 378.69/291.54 378.69/291.54 Types: 378.69/291.54 if :: true:false -> if -> if -> if 378.69/291.54 true :: true:false 378.69/291.54 false :: true:false 378.69/291.54 eq :: 0':s -> 0':s -> true:false 378.69/291.54 0' :: 0':s 378.69/291.54 s :: 0':s -> 0':s 378.69/291.54 app :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 nil :: nil:cons 378.69/291.54 cons :: 0':s -> nil:cons -> nil:cons 378.69/291.54 mem :: 0':s -> nil:cons -> true:false 378.69/291.54 ifmem :: true:false -> 0':s -> nil:cons -> true:false 378.69/291.54 inter :: nil:cons -> nil:cons -> nil:cons 378.69/291.54 ifinter :: true:false -> 0':s -> nil:cons -> nil:cons -> nil:cons 378.69/291.54 hole_if1_0 :: if 378.69/291.54 hole_true:false2_0 :: true:false 378.69/291.54 hole_0':s3_0 :: 0':s 378.69/291.54 hole_nil:cons4_0 :: nil:cons 378.69/291.54 gen_0':s5_0 :: Nat -> 0':s 378.69/291.54 gen_nil:cons6_0 :: Nat -> nil:cons 378.69/291.54 378.69/291.54 378.69/291.54 Lemmas: 378.69/291.54 eq(gen_0':s5_0(n8_0), gen_0':s5_0(n8_0)) -> true, rt in Omega(1 + n8_0) 378.69/291.54 app(gen_nil:cons6_0(n537_0), gen_nil:cons6_0(b)) -> gen_nil:cons6_0(+(n537_0, b)), rt in Omega(1 + n537_0) 378.69/291.54 378.69/291.54 378.69/291.54 Generator Equations: 378.69/291.54 gen_0':s5_0(0) <=> 0' 378.69/291.54 gen_0':s5_0(+(x, 1)) <=> s(gen_0':s5_0(x)) 378.69/291.54 gen_nil:cons6_0(0) <=> nil 378.69/291.54 gen_nil:cons6_0(+(x, 1)) <=> cons(0', gen_nil:cons6_0(x)) 378.69/291.54 378.69/291.54 378.69/291.54 The following defined symbols remain to be analysed: 378.69/291.54 mem, inter 378.69/291.54 378.69/291.54 They will be analysed ascendingly in the following order: 378.69/291.54 mem < inter 378.81/291.57 EOF