1106.81/291.56 WORST_CASE(Omega(n^1), ?) 1106.81/291.58 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 1106.81/291.58 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 1106.81/291.58 1106.81/291.58 1106.81/291.58 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1106.81/291.58 1106.81/291.58 (0) CpxTRS 1106.81/291.58 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 1106.81/291.58 (2) CpxTRS 1106.81/291.58 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 1106.81/291.58 (4) typed CpxTrs 1106.81/291.58 (5) OrderProof [LOWER BOUND(ID), 0 ms] 1106.81/291.58 (6) typed CpxTrs 1106.81/291.58 (7) RewriteLemmaProof [LOWER BOUND(ID), 230 ms] 1106.81/291.58 (8) BEST 1106.81/291.58 (9) proven lower bound 1106.81/291.58 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 1106.81/291.58 (11) BOUNDS(n^1, INF) 1106.81/291.58 (12) typed CpxTrs 1106.81/291.58 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (0) 1106.81/291.58 Obligation: 1106.81/291.58 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1106.81/291.58 1106.81/291.58 1106.81/291.58 The TRS R consists of the following rules: 1106.81/291.58 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 S is empty. 1106.81/291.58 Rewrite Strategy: FULL 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 1106.81/291.58 Renamed function symbols to avoid clashes with predefined symbol. 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (2) 1106.81/291.58 Obligation: 1106.81/291.58 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1106.81/291.58 1106.81/291.58 1106.81/291.58 The TRS R consists of the following rules: 1106.81/291.58 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 S is empty. 1106.81/291.58 Rewrite Strategy: FULL 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 1106.81/291.58 Infered types. 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (4) 1106.81/291.58 Obligation: 1106.81/291.58 TRS: 1106.81/291.58 Rules: 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 Types: 1106.81/291.58 a____ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 __ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 mark :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 nil :: __:nil:tt:and:isNePal 1106.81/291.58 a__and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 tt :: __:nil:tt:and:isNePal 1106.81/291.58 a__isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 hole___:nil:tt:and:isNePal1_0 :: __:nil:tt:and:isNePal 1106.81/291.58 gen___:nil:tt:and:isNePal2_0 :: Nat -> __:nil:tt:and:isNePal 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (5) OrderProof (LOWER BOUND(ID)) 1106.81/291.58 Heuristically decided to analyse the following defined symbols: 1106.81/291.58 a____, mark 1106.81/291.58 1106.81/291.58 They will be analysed ascendingly in the following order: 1106.81/291.58 a____ = mark 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (6) 1106.81/291.58 Obligation: 1106.81/291.58 TRS: 1106.81/291.58 Rules: 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 Types: 1106.81/291.58 a____ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 __ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 mark :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 nil :: __:nil:tt:and:isNePal 1106.81/291.58 a__and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 tt :: __:nil:tt:and:isNePal 1106.81/291.58 a__isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 hole___:nil:tt:and:isNePal1_0 :: __:nil:tt:and:isNePal 1106.81/291.58 gen___:nil:tt:and:isNePal2_0 :: Nat -> __:nil:tt:and:isNePal 1106.81/291.58 1106.81/291.58 1106.81/291.58 Generator Equations: 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(0) <=> nil 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:and:isNePal2_0(x)) 1106.81/291.58 1106.81/291.58 1106.81/291.58 The following defined symbols remain to be analysed: 1106.81/291.58 mark, a____ 1106.81/291.58 1106.81/291.58 They will be analysed ascendingly in the following order: 1106.81/291.58 a____ = mark 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (7) RewriteLemmaProof (LOWER BOUND(ID)) 1106.81/291.58 Proved the following rewrite lemma: 1106.81/291.58 mark(gen___:nil:tt:and:isNePal2_0(n4_0)) -> gen___:nil:tt:and:isNePal2_0(0), rt in Omega(1 + n4_0) 1106.81/291.58 1106.81/291.58 Induction Base: 1106.81/291.58 mark(gen___:nil:tt:and:isNePal2_0(0)) ->_R^Omega(1) 1106.81/291.58 nil 1106.81/291.58 1106.81/291.58 Induction Step: 1106.81/291.58 mark(gen___:nil:tt:and:isNePal2_0(+(n4_0, 1))) ->_R^Omega(1) 1106.81/291.58 a____(mark(nil), mark(gen___:nil:tt:and:isNePal2_0(n4_0))) ->_R^Omega(1) 1106.81/291.58 a____(nil, mark(gen___:nil:tt:and:isNePal2_0(n4_0))) ->_IH 1106.81/291.58 a____(nil, gen___:nil:tt:and:isNePal2_0(0)) ->_R^Omega(1) 1106.81/291.58 mark(nil) ->_R^Omega(1) 1106.81/291.58 nil 1106.81/291.58 1106.81/291.58 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (8) 1106.81/291.58 Complex Obligation (BEST) 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (9) 1106.81/291.58 Obligation: 1106.81/291.58 Proved the lower bound n^1 for the following obligation: 1106.81/291.58 1106.81/291.58 TRS: 1106.81/291.58 Rules: 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 Types: 1106.81/291.58 a____ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 __ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 mark :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 nil :: __:nil:tt:and:isNePal 1106.81/291.58 a__and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 tt :: __:nil:tt:and:isNePal 1106.81/291.58 a__isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 hole___:nil:tt:and:isNePal1_0 :: __:nil:tt:and:isNePal 1106.81/291.58 gen___:nil:tt:and:isNePal2_0 :: Nat -> __:nil:tt:and:isNePal 1106.81/291.58 1106.81/291.58 1106.81/291.58 Generator Equations: 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(0) <=> nil 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:and:isNePal2_0(x)) 1106.81/291.58 1106.81/291.58 1106.81/291.58 The following defined symbols remain to be analysed: 1106.81/291.58 mark, a____ 1106.81/291.58 1106.81/291.58 They will be analysed ascendingly in the following order: 1106.81/291.58 a____ = mark 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (10) LowerBoundPropagationProof (FINISHED) 1106.81/291.58 Propagated lower bound. 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (11) 1106.81/291.58 BOUNDS(n^1, INF) 1106.81/291.58 1106.81/291.58 ---------------------------------------- 1106.81/291.58 1106.81/291.58 (12) 1106.81/291.58 Obligation: 1106.81/291.58 TRS: 1106.81/291.58 Rules: 1106.81/291.58 a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) 1106.81/291.58 a____(X, nil) -> mark(X) 1106.81/291.58 a____(nil, X) -> mark(X) 1106.81/291.58 a__and(tt, X) -> mark(X) 1106.81/291.58 a__isNePal(__(I, __(P, I))) -> tt 1106.81/291.58 mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) 1106.81/291.58 mark(and(X1, X2)) -> a__and(mark(X1), X2) 1106.81/291.58 mark(isNePal(X)) -> a__isNePal(mark(X)) 1106.81/291.58 mark(nil) -> nil 1106.81/291.58 mark(tt) -> tt 1106.81/291.58 a____(X1, X2) -> __(X1, X2) 1106.81/291.58 a__and(X1, X2) -> and(X1, X2) 1106.81/291.58 a__isNePal(X) -> isNePal(X) 1106.81/291.58 1106.81/291.58 Types: 1106.81/291.58 a____ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 __ :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 mark :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 nil :: __:nil:tt:and:isNePal 1106.81/291.58 a__and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 tt :: __:nil:tt:and:isNePal 1106.81/291.58 a__isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 and :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 isNePal :: __:nil:tt:and:isNePal -> __:nil:tt:and:isNePal 1106.81/291.58 hole___:nil:tt:and:isNePal1_0 :: __:nil:tt:and:isNePal 1106.81/291.58 gen___:nil:tt:and:isNePal2_0 :: Nat -> __:nil:tt:and:isNePal 1106.81/291.58 1106.81/291.58 1106.81/291.58 Lemmas: 1106.81/291.58 mark(gen___:nil:tt:and:isNePal2_0(n4_0)) -> gen___:nil:tt:and:isNePal2_0(0), rt in Omega(1 + n4_0) 1106.81/291.58 1106.81/291.58 1106.81/291.58 Generator Equations: 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(0) <=> nil 1106.81/291.58 gen___:nil:tt:and:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:and:isNePal2_0(x)) 1106.81/291.58 1106.81/291.58 1106.81/291.58 The following defined symbols remain to be analysed: 1106.81/291.58 a____ 1106.81/291.58 1106.81/291.58 They will be analysed ascendingly in the following order: 1106.81/291.58 a____ = mark 1107.07/291.68 EOF