319.11/291.54 WORST_CASE(Omega(n^1), ?) 319.49/291.67 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 319.49/291.67 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 319.49/291.67 319.49/291.67 319.49/291.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 319.49/291.67 319.49/291.67 (0) CpxTRS 319.49/291.67 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 319.49/291.67 (2) CpxTRS 319.49/291.67 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 319.49/291.67 (4) typed CpxTrs 319.49/291.67 (5) OrderProof [LOWER BOUND(ID), 0 ms] 319.49/291.67 (6) typed CpxTrs 319.49/291.67 (7) RewriteLemmaProof [LOWER BOUND(ID), 326 ms] 319.49/291.67 (8) BEST 319.49/291.67 (9) proven lower bound 319.49/291.67 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 319.49/291.67 (11) BOUNDS(n^1, INF) 319.49/291.67 (12) typed CpxTrs 319.49/291.67 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (0) 319.49/291.67 Obligation: 319.49/291.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 319.49/291.67 319.49/291.67 319.49/291.67 The TRS R consists of the following rules: 319.49/291.67 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0) -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0 -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 S is empty. 319.49/291.67 Rewrite Strategy: FULL 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 319.49/291.67 Renamed function symbols to avoid clashes with predefined symbol. 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (2) 319.49/291.67 Obligation: 319.49/291.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 319.49/291.67 319.49/291.67 319.49/291.67 The TRS R consists of the following rules: 319.49/291.67 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0') -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0' -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0' 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 S is empty. 319.49/291.67 Rewrite Strategy: FULL 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 319.49/291.67 Infered types. 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (4) 319.49/291.67 Obligation: 319.49/291.67 TRS: 319.49/291.67 Rules: 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0') -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0' -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0' 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 Types: 319.49/291.67 U11 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 tt :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 activate :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 U21 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 and :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__0 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 0' :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 hole_tt:n__0:n__plus:n__isNat:n__s1_3 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3 :: Nat -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (5) OrderProof (LOWER BOUND(ID)) 319.49/291.67 Heuristically decided to analyse the following defined symbols: 319.49/291.67 U11, activate, plus, and, isNat 319.49/291.67 319.49/291.67 They will be analysed ascendingly in the following order: 319.49/291.67 U11 = activate 319.49/291.67 U11 = plus 319.49/291.67 U11 = and 319.49/291.67 U11 = isNat 319.49/291.67 activate = plus 319.49/291.67 activate = and 319.49/291.67 activate = isNat 319.49/291.67 plus = and 319.49/291.67 plus = isNat 319.49/291.67 and = isNat 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (6) 319.49/291.67 Obligation: 319.49/291.67 TRS: 319.49/291.67 Rules: 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0') -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0' -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0' 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 Types: 319.49/291.67 U11 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 tt :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 activate :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 U21 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 and :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__0 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 0' :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 hole_tt:n__0:n__plus:n__isNat:n__s1_3 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3 :: Nat -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 319.49/291.67 319.49/291.67 Generator Equations: 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(0) <=> n__0 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(+(x, 1)) <=> n__plus(gen_tt:n__0:n__plus:n__isNat:n__s2_3(x), n__0) 319.49/291.67 319.49/291.67 319.49/291.67 The following defined symbols remain to be analysed: 319.49/291.67 activate, U11, plus, and, isNat 319.49/291.67 319.49/291.67 They will be analysed ascendingly in the following order: 319.49/291.67 U11 = activate 319.49/291.67 U11 = plus 319.49/291.67 U11 = and 319.49/291.67 U11 = isNat 319.49/291.67 activate = plus 319.49/291.67 activate = and 319.49/291.67 activate = isNat 319.49/291.67 plus = and 319.49/291.67 plus = isNat 319.49/291.67 and = isNat 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (7) RewriteLemmaProof (LOWER BOUND(ID)) 319.49/291.67 Proved the following rewrite lemma: 319.49/291.67 isNat(gen_tt:n__0:n__plus:n__isNat:n__s2_3(n113_3)) -> tt, rt in Omega(1 + n113_3) 319.49/291.67 319.49/291.67 Induction Base: 319.49/291.67 isNat(gen_tt:n__0:n__plus:n__isNat:n__s2_3(0)) ->_R^Omega(1) 319.49/291.67 tt 319.49/291.67 319.49/291.67 Induction Step: 319.49/291.67 isNat(gen_tt:n__0:n__plus:n__isNat:n__s2_3(+(n113_3, 1))) ->_R^Omega(1) 319.49/291.67 and(isNat(activate(gen_tt:n__0:n__plus:n__isNat:n__s2_3(n113_3))), n__isNat(activate(n__0))) ->_R^Omega(1) 319.49/291.67 and(isNat(gen_tt:n__0:n__plus:n__isNat:n__s2_3(n113_3)), n__isNat(activate(n__0))) ->_IH 319.49/291.67 and(tt, n__isNat(activate(n__0))) ->_R^Omega(1) 319.49/291.67 and(tt, n__isNat(n__0)) ->_R^Omega(1) 319.49/291.67 activate(n__isNat(n__0)) ->_R^Omega(1) 319.49/291.67 isNat(n__0) ->_R^Omega(1) 319.49/291.67 tt 319.49/291.67 319.49/291.67 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (8) 319.49/291.67 Complex Obligation (BEST) 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (9) 319.49/291.67 Obligation: 319.49/291.67 Proved the lower bound n^1 for the following obligation: 319.49/291.67 319.49/291.67 TRS: 319.49/291.67 Rules: 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0') -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0' -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0' 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 Types: 319.49/291.67 U11 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 tt :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 activate :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 U21 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 and :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__0 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 0' :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 hole_tt:n__0:n__plus:n__isNat:n__s1_3 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3 :: Nat -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 319.49/291.67 319.49/291.67 Generator Equations: 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(0) <=> n__0 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(+(x, 1)) <=> n__plus(gen_tt:n__0:n__plus:n__isNat:n__s2_3(x), n__0) 319.49/291.67 319.49/291.67 319.49/291.67 The following defined symbols remain to be analysed: 319.49/291.67 isNat, and 319.49/291.67 319.49/291.67 They will be analysed ascendingly in the following order: 319.49/291.67 U11 = activate 319.49/291.67 U11 = plus 319.49/291.67 U11 = and 319.49/291.67 U11 = isNat 319.49/291.67 activate = plus 319.49/291.67 activate = and 319.49/291.67 activate = isNat 319.49/291.67 plus = and 319.49/291.67 plus = isNat 319.49/291.67 and = isNat 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (10) LowerBoundPropagationProof (FINISHED) 319.49/291.67 Propagated lower bound. 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (11) 319.49/291.67 BOUNDS(n^1, INF) 319.49/291.67 319.49/291.67 ---------------------------------------- 319.49/291.67 319.49/291.67 (12) 319.49/291.67 Obligation: 319.49/291.67 TRS: 319.49/291.67 Rules: 319.49/291.67 U11(tt, N) -> activate(N) 319.49/291.67 U21(tt, M, N) -> s(plus(activate(N), activate(M))) 319.49/291.67 and(tt, X) -> activate(X) 319.49/291.67 isNat(n__0) -> tt 319.49/291.67 isNat(n__plus(V1, V2)) -> and(isNat(activate(V1)), n__isNat(activate(V2))) 319.49/291.67 isNat(n__s(V1)) -> isNat(activate(V1)) 319.49/291.67 plus(N, 0') -> U11(isNat(N), N) 319.49/291.67 plus(N, s(M)) -> U21(and(isNat(M), n__isNat(N)), M, N) 319.49/291.67 0' -> n__0 319.49/291.67 plus(X1, X2) -> n__plus(X1, X2) 319.49/291.67 isNat(X) -> n__isNat(X) 319.49/291.67 s(X) -> n__s(X) 319.49/291.67 activate(n__0) -> 0' 319.49/291.67 activate(n__plus(X1, X2)) -> plus(X1, X2) 319.49/291.67 activate(n__isNat(X)) -> isNat(X) 319.49/291.67 activate(n__s(X)) -> s(X) 319.49/291.67 activate(X) -> X 319.49/291.67 319.49/291.67 Types: 319.49/291.67 U11 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 tt :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 activate :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 U21 :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 and :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__0 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__plus :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__isNat :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 n__s :: tt:n__0:n__plus:n__isNat:n__s -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 0' :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 hole_tt:n__0:n__plus:n__isNat:n__s1_3 :: tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3 :: Nat -> tt:n__0:n__plus:n__isNat:n__s 319.49/291.67 319.49/291.67 319.49/291.67 Lemmas: 319.49/291.67 isNat(gen_tt:n__0:n__plus:n__isNat:n__s2_3(n113_3)) -> tt, rt in Omega(1 + n113_3) 319.49/291.67 319.49/291.67 319.49/291.67 Generator Equations: 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(0) <=> n__0 319.49/291.67 gen_tt:n__0:n__plus:n__isNat:n__s2_3(+(x, 1)) <=> n__plus(gen_tt:n__0:n__plus:n__isNat:n__s2_3(x), n__0) 319.49/291.67 319.49/291.67 319.49/291.67 The following defined symbols remain to be analysed: 319.49/291.67 and, U11, activate, plus 319.49/291.67 319.49/291.67 They will be analysed ascendingly in the following order: 319.49/291.67 U11 = activate 319.49/291.67 U11 = plus 319.49/291.67 U11 = and 319.49/291.67 U11 = isNat 319.49/291.67 activate = plus 319.49/291.67 activate = and 319.49/291.67 activate = isNat 319.49/291.67 plus = and 319.49/291.67 plus = isNat 319.49/291.67 and = isNat 319.56/291.71 EOF