56.10/15.28 WORST_CASE(NON_POLY, ?) 63.53/17.15 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 63.53/17.15 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 63.53/17.15 63.53/17.15 63.53/17.15 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 63.53/17.15 63.53/17.15 (0) CpxTRS 63.53/17.15 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 63.53/17.15 (2) TRS for Loop Detection 63.53/17.15 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 63.53/17.15 (4) BEST 63.53/17.15 (5) proven lower bound 63.53/17.15 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 63.53/17.15 (7) BOUNDS(n^1, INF) 63.53/17.15 (8) TRS for Loop Detection 63.53/17.15 (9) DecreasingLoopProof [FINISHED, 5320 ms] 63.53/17.15 (10) BOUNDS(EXP, INF) 63.53/17.15 63.53/17.15 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (0) 63.53/17.15 Obligation: 63.53/17.15 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 63.53/17.15 63.53/17.15 63.53/17.15 The TRS R consists of the following rules: 63.53/17.15 63.53/17.15 a__U101(tt, M, N) -> a__U102(a__isNatKind(M), M, N) 63.53/17.15 a__U102(tt, M, N) -> a__U103(a__isNat(N), M, N) 63.53/17.15 a__U103(tt, M, N) -> a__U104(a__isNatKind(N), M, N) 63.53/17.15 a__U104(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) 63.53/17.15 a__U11(tt, V1, V2) -> a__U12(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U12(tt, V1, V2) -> a__U13(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U13(tt, V1, V2) -> a__U14(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U14(tt, V1, V2) -> a__U15(a__isNat(V1), V2) 63.53/17.15 a__U15(tt, V2) -> a__U16(a__isNat(V2)) 63.53/17.15 a__U16(tt) -> tt 63.53/17.15 a__U21(tt, V1) -> a__U22(a__isNatKind(V1), V1) 63.53/17.15 a__U22(tt, V1) -> a__U23(a__isNat(V1)) 63.53/17.15 a__U23(tt) -> tt 63.53/17.15 a__U31(tt, V1, V2) -> a__U32(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U32(tt, V1, V2) -> a__U33(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U33(tt, V1, V2) -> a__U34(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U34(tt, V1, V2) -> a__U35(a__isNat(V1), V2) 63.53/17.15 a__U35(tt, V2) -> a__U36(a__isNat(V2)) 63.53/17.15 a__U36(tt) -> tt 63.53/17.15 a__U41(tt, V2) -> a__U42(a__isNatKind(V2)) 63.53/17.15 a__U42(tt) -> tt 63.53/17.15 a__U51(tt) -> tt 63.53/17.15 a__U61(tt, V2) -> a__U62(a__isNatKind(V2)) 63.53/17.15 a__U62(tt) -> tt 63.53/17.15 a__U71(tt, N) -> a__U72(a__isNatKind(N), N) 63.53/17.15 a__U72(tt, N) -> mark(N) 63.53/17.15 a__U81(tt, M, N) -> a__U82(a__isNatKind(M), M, N) 63.53/17.15 a__U82(tt, M, N) -> a__U83(a__isNat(N), M, N) 63.53/17.15 a__U83(tt, M, N) -> a__U84(a__isNatKind(N), M, N) 63.53/17.15 a__U84(tt, M, N) -> s(a__plus(mark(N), mark(M))) 63.53/17.15 a__U91(tt, N) -> a__U92(a__isNatKind(N)) 63.53/17.15 a__U92(tt) -> 0 63.53/17.15 a__isNat(0) -> tt 63.53/17.15 a__isNat(plus(V1, V2)) -> a__U11(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) 63.53/17.15 a__isNat(x(V1, V2)) -> a__U31(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNatKind(0) -> tt 63.53/17.15 a__isNatKind(plus(V1, V2)) -> a__U41(a__isNatKind(V1), V2) 63.53/17.15 a__isNatKind(s(V1)) -> a__U51(a__isNatKind(V1)) 63.53/17.15 a__isNatKind(x(V1, V2)) -> a__U61(a__isNatKind(V1), V2) 63.53/17.15 a__plus(N, 0) -> a__U71(a__isNat(N), N) 63.53/17.15 a__plus(N, s(M)) -> a__U81(a__isNat(M), M, N) 63.53/17.15 a__x(N, 0) -> a__U91(a__isNat(N), N) 63.53/17.15 a__x(N, s(M)) -> a__U101(a__isNat(M), M, N) 63.53/17.15 mark(U101(X1, X2, X3)) -> a__U101(mark(X1), X2, X3) 63.53/17.15 mark(U102(X1, X2, X3)) -> a__U102(mark(X1), X2, X3) 63.53/17.15 mark(isNatKind(X)) -> a__isNatKind(X) 63.53/17.15 mark(U103(X1, X2, X3)) -> a__U103(mark(X1), X2, X3) 63.53/17.15 mark(isNat(X)) -> a__isNat(X) 63.53/17.15 mark(U104(X1, X2, X3)) -> a__U104(mark(X1), X2, X3) 63.53/17.15 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 63.53/17.15 mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) 63.53/17.15 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 63.53/17.15 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 63.53/17.15 mark(U13(X1, X2, X3)) -> a__U13(mark(X1), X2, X3) 63.53/17.15 mark(U14(X1, X2, X3)) -> a__U14(mark(X1), X2, X3) 63.53/17.15 mark(U15(X1, X2)) -> a__U15(mark(X1), X2) 63.53/17.15 mark(U16(X)) -> a__U16(mark(X)) 63.53/17.15 mark(U21(X1, X2)) -> a__U21(mark(X1), X2) 63.53/17.15 mark(U22(X1, X2)) -> a__U22(mark(X1), X2) 63.53/17.15 mark(U23(X)) -> a__U23(mark(X)) 63.53/17.15 mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) 63.53/17.15 mark(U32(X1, X2, X3)) -> a__U32(mark(X1), X2, X3) 63.53/17.15 mark(U33(X1, X2, X3)) -> a__U33(mark(X1), X2, X3) 63.53/17.15 mark(U34(X1, X2, X3)) -> a__U34(mark(X1), X2, X3) 63.53/17.15 mark(U35(X1, X2)) -> a__U35(mark(X1), X2) 63.53/17.15 mark(U36(X)) -> a__U36(mark(X)) 63.53/17.15 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 63.53/17.15 mark(U42(X)) -> a__U42(mark(X)) 63.53/17.15 mark(U51(X)) -> a__U51(mark(X)) 63.53/17.15 mark(U61(X1, X2)) -> a__U61(mark(X1), X2) 63.53/17.15 mark(U62(X)) -> a__U62(mark(X)) 63.53/17.15 mark(U71(X1, X2)) -> a__U71(mark(X1), X2) 63.53/17.15 mark(U72(X1, X2)) -> a__U72(mark(X1), X2) 63.53/17.15 mark(U81(X1, X2, X3)) -> a__U81(mark(X1), X2, X3) 63.53/17.15 mark(U82(X1, X2, X3)) -> a__U82(mark(X1), X2, X3) 63.53/17.15 mark(U83(X1, X2, X3)) -> a__U83(mark(X1), X2, X3) 63.53/17.15 mark(U84(X1, X2, X3)) -> a__U84(mark(X1), X2, X3) 63.53/17.15 mark(U91(X1, X2)) -> a__U91(mark(X1), X2) 63.53/17.15 mark(U92(X)) -> a__U92(mark(X)) 63.53/17.15 mark(tt) -> tt 63.53/17.15 mark(s(X)) -> s(mark(X)) 63.53/17.15 mark(0) -> 0 63.53/17.15 a__U101(X1, X2, X3) -> U101(X1, X2, X3) 63.53/17.15 a__U102(X1, X2, X3) -> U102(X1, X2, X3) 63.53/17.15 a__isNatKind(X) -> isNatKind(X) 63.53/17.15 a__U103(X1, X2, X3) -> U103(X1, X2, X3) 63.53/17.15 a__isNat(X) -> isNat(X) 63.53/17.15 a__U104(X1, X2, X3) -> U104(X1, X2, X3) 63.53/17.15 a__plus(X1, X2) -> plus(X1, X2) 63.53/17.15 a__x(X1, X2) -> x(X1, X2) 63.53/17.15 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 63.53/17.15 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 63.53/17.15 a__U13(X1, X2, X3) -> U13(X1, X2, X3) 63.53/17.15 a__U14(X1, X2, X3) -> U14(X1, X2, X3) 63.53/17.15 a__U15(X1, X2) -> U15(X1, X2) 63.53/17.15 a__U16(X) -> U16(X) 63.53/17.15 a__U21(X1, X2) -> U21(X1, X2) 63.53/17.15 a__U22(X1, X2) -> U22(X1, X2) 63.53/17.15 a__U23(X) -> U23(X) 63.53/17.15 a__U31(X1, X2, X3) -> U31(X1, X2, X3) 63.53/17.15 a__U32(X1, X2, X3) -> U32(X1, X2, X3) 63.53/17.15 a__U33(X1, X2, X3) -> U33(X1, X2, X3) 63.53/17.15 a__U34(X1, X2, X3) -> U34(X1, X2, X3) 63.53/17.15 a__U35(X1, X2) -> U35(X1, X2) 63.53/17.15 a__U36(X) -> U36(X) 63.53/17.15 a__U41(X1, X2) -> U41(X1, X2) 63.53/17.15 a__U42(X) -> U42(X) 63.53/17.15 a__U51(X) -> U51(X) 63.53/17.15 a__U61(X1, X2) -> U61(X1, X2) 63.53/17.15 a__U62(X) -> U62(X) 63.53/17.15 a__U71(X1, X2) -> U71(X1, X2) 63.53/17.15 a__U72(X1, X2) -> U72(X1, X2) 63.53/17.15 a__U81(X1, X2, X3) -> U81(X1, X2, X3) 63.53/17.15 a__U82(X1, X2, X3) -> U82(X1, X2, X3) 63.53/17.15 a__U83(X1, X2, X3) -> U83(X1, X2, X3) 63.53/17.15 a__U84(X1, X2, X3) -> U84(X1, X2, X3) 63.53/17.15 a__U91(X1, X2) -> U91(X1, X2) 63.53/17.15 a__U92(X) -> U92(X) 63.53/17.15 63.53/17.15 S is empty. 63.53/17.15 Rewrite Strategy: INNERMOST 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 63.53/17.15 Transformed a relative TRS into a decreasing-loop problem. 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (2) 63.53/17.15 Obligation: 63.53/17.15 Analyzing the following TRS for decreasing loops: 63.53/17.15 63.53/17.15 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 63.53/17.15 63.53/17.15 63.53/17.15 The TRS R consists of the following rules: 63.53/17.15 63.53/17.15 a__U101(tt, M, N) -> a__U102(a__isNatKind(M), M, N) 63.53/17.15 a__U102(tt, M, N) -> a__U103(a__isNat(N), M, N) 63.53/17.15 a__U103(tt, M, N) -> a__U104(a__isNatKind(N), M, N) 63.53/17.15 a__U104(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) 63.53/17.15 a__U11(tt, V1, V2) -> a__U12(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U12(tt, V1, V2) -> a__U13(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U13(tt, V1, V2) -> a__U14(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U14(tt, V1, V2) -> a__U15(a__isNat(V1), V2) 63.53/17.15 a__U15(tt, V2) -> a__U16(a__isNat(V2)) 63.53/17.15 a__U16(tt) -> tt 63.53/17.15 a__U21(tt, V1) -> a__U22(a__isNatKind(V1), V1) 63.53/17.15 a__U22(tt, V1) -> a__U23(a__isNat(V1)) 63.53/17.15 a__U23(tt) -> tt 63.53/17.15 a__U31(tt, V1, V2) -> a__U32(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U32(tt, V1, V2) -> a__U33(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U33(tt, V1, V2) -> a__U34(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U34(tt, V1, V2) -> a__U35(a__isNat(V1), V2) 63.53/17.15 a__U35(tt, V2) -> a__U36(a__isNat(V2)) 63.53/17.15 a__U36(tt) -> tt 63.53/17.15 a__U41(tt, V2) -> a__U42(a__isNatKind(V2)) 63.53/17.15 a__U42(tt) -> tt 63.53/17.15 a__U51(tt) -> tt 63.53/17.15 a__U61(tt, V2) -> a__U62(a__isNatKind(V2)) 63.53/17.15 a__U62(tt) -> tt 63.53/17.15 a__U71(tt, N) -> a__U72(a__isNatKind(N), N) 63.53/17.15 a__U72(tt, N) -> mark(N) 63.53/17.15 a__U81(tt, M, N) -> a__U82(a__isNatKind(M), M, N) 63.53/17.15 a__U82(tt, M, N) -> a__U83(a__isNat(N), M, N) 63.53/17.15 a__U83(tt, M, N) -> a__U84(a__isNatKind(N), M, N) 63.53/17.15 a__U84(tt, M, N) -> s(a__plus(mark(N), mark(M))) 63.53/17.15 a__U91(tt, N) -> a__U92(a__isNatKind(N)) 63.53/17.15 a__U92(tt) -> 0 63.53/17.15 a__isNat(0) -> tt 63.53/17.15 a__isNat(plus(V1, V2)) -> a__U11(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) 63.53/17.15 a__isNat(x(V1, V2)) -> a__U31(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNatKind(0) -> tt 63.53/17.15 a__isNatKind(plus(V1, V2)) -> a__U41(a__isNatKind(V1), V2) 63.53/17.15 a__isNatKind(s(V1)) -> a__U51(a__isNatKind(V1)) 63.53/17.15 a__isNatKind(x(V1, V2)) -> a__U61(a__isNatKind(V1), V2) 63.53/17.15 a__plus(N, 0) -> a__U71(a__isNat(N), N) 63.53/17.15 a__plus(N, s(M)) -> a__U81(a__isNat(M), M, N) 63.53/17.15 a__x(N, 0) -> a__U91(a__isNat(N), N) 63.53/17.15 a__x(N, s(M)) -> a__U101(a__isNat(M), M, N) 63.53/17.15 mark(U101(X1, X2, X3)) -> a__U101(mark(X1), X2, X3) 63.53/17.15 mark(U102(X1, X2, X3)) -> a__U102(mark(X1), X2, X3) 63.53/17.15 mark(isNatKind(X)) -> a__isNatKind(X) 63.53/17.15 mark(U103(X1, X2, X3)) -> a__U103(mark(X1), X2, X3) 63.53/17.15 mark(isNat(X)) -> a__isNat(X) 63.53/17.15 mark(U104(X1, X2, X3)) -> a__U104(mark(X1), X2, X3) 63.53/17.15 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 63.53/17.15 mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) 63.53/17.15 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 63.53/17.15 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 63.53/17.15 mark(U13(X1, X2, X3)) -> a__U13(mark(X1), X2, X3) 63.53/17.15 mark(U14(X1, X2, X3)) -> a__U14(mark(X1), X2, X3) 63.53/17.15 mark(U15(X1, X2)) -> a__U15(mark(X1), X2) 63.53/17.15 mark(U16(X)) -> a__U16(mark(X)) 63.53/17.15 mark(U21(X1, X2)) -> a__U21(mark(X1), X2) 63.53/17.15 mark(U22(X1, X2)) -> a__U22(mark(X1), X2) 63.53/17.15 mark(U23(X)) -> a__U23(mark(X)) 63.53/17.15 mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) 63.53/17.15 mark(U32(X1, X2, X3)) -> a__U32(mark(X1), X2, X3) 63.53/17.15 mark(U33(X1, X2, X3)) -> a__U33(mark(X1), X2, X3) 63.53/17.15 mark(U34(X1, X2, X3)) -> a__U34(mark(X1), X2, X3) 63.53/17.15 mark(U35(X1, X2)) -> a__U35(mark(X1), X2) 63.53/17.15 mark(U36(X)) -> a__U36(mark(X)) 63.53/17.15 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 63.53/17.15 mark(U42(X)) -> a__U42(mark(X)) 63.53/17.15 mark(U51(X)) -> a__U51(mark(X)) 63.53/17.15 mark(U61(X1, X2)) -> a__U61(mark(X1), X2) 63.53/17.15 mark(U62(X)) -> a__U62(mark(X)) 63.53/17.15 mark(U71(X1, X2)) -> a__U71(mark(X1), X2) 63.53/17.15 mark(U72(X1, X2)) -> a__U72(mark(X1), X2) 63.53/17.15 mark(U81(X1, X2, X3)) -> a__U81(mark(X1), X2, X3) 63.53/17.15 mark(U82(X1, X2, X3)) -> a__U82(mark(X1), X2, X3) 63.53/17.15 mark(U83(X1, X2, X3)) -> a__U83(mark(X1), X2, X3) 63.53/17.15 mark(U84(X1, X2, X3)) -> a__U84(mark(X1), X2, X3) 63.53/17.15 mark(U91(X1, X2)) -> a__U91(mark(X1), X2) 63.53/17.15 mark(U92(X)) -> a__U92(mark(X)) 63.53/17.15 mark(tt) -> tt 63.53/17.15 mark(s(X)) -> s(mark(X)) 63.53/17.15 mark(0) -> 0 63.53/17.15 a__U101(X1, X2, X3) -> U101(X1, X2, X3) 63.53/17.15 a__U102(X1, X2, X3) -> U102(X1, X2, X3) 63.53/17.15 a__isNatKind(X) -> isNatKind(X) 63.53/17.15 a__U103(X1, X2, X3) -> U103(X1, X2, X3) 63.53/17.15 a__isNat(X) -> isNat(X) 63.53/17.15 a__U104(X1, X2, X3) -> U104(X1, X2, X3) 63.53/17.15 a__plus(X1, X2) -> plus(X1, X2) 63.53/17.15 a__x(X1, X2) -> x(X1, X2) 63.53/17.15 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 63.53/17.15 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 63.53/17.15 a__U13(X1, X2, X3) -> U13(X1, X2, X3) 63.53/17.15 a__U14(X1, X2, X3) -> U14(X1, X2, X3) 63.53/17.15 a__U15(X1, X2) -> U15(X1, X2) 63.53/17.15 a__U16(X) -> U16(X) 63.53/17.15 a__U21(X1, X2) -> U21(X1, X2) 63.53/17.15 a__U22(X1, X2) -> U22(X1, X2) 63.53/17.15 a__U23(X) -> U23(X) 63.53/17.15 a__U31(X1, X2, X3) -> U31(X1, X2, X3) 63.53/17.15 a__U32(X1, X2, X3) -> U32(X1, X2, X3) 63.53/17.15 a__U33(X1, X2, X3) -> U33(X1, X2, X3) 63.53/17.15 a__U34(X1, X2, X3) -> U34(X1, X2, X3) 63.53/17.15 a__U35(X1, X2) -> U35(X1, X2) 63.53/17.15 a__U36(X) -> U36(X) 63.53/17.15 a__U41(X1, X2) -> U41(X1, X2) 63.53/17.15 a__U42(X) -> U42(X) 63.53/17.15 a__U51(X) -> U51(X) 63.53/17.15 a__U61(X1, X2) -> U61(X1, X2) 63.53/17.15 a__U62(X) -> U62(X) 63.53/17.15 a__U71(X1, X2) -> U71(X1, X2) 63.53/17.15 a__U72(X1, X2) -> U72(X1, X2) 63.53/17.15 a__U81(X1, X2, X3) -> U81(X1, X2, X3) 63.53/17.15 a__U82(X1, X2, X3) -> U82(X1, X2, X3) 63.53/17.15 a__U83(X1, X2, X3) -> U83(X1, X2, X3) 63.53/17.15 a__U84(X1, X2, X3) -> U84(X1, X2, X3) 63.53/17.15 a__U91(X1, X2) -> U91(X1, X2) 63.53/17.15 a__U92(X) -> U92(X) 63.53/17.15 63.53/17.15 S is empty. 63.53/17.15 Rewrite Strategy: INNERMOST 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (3) DecreasingLoopProof (LOWER BOUND(ID)) 63.53/17.15 The following loop(s) give(s) rise to the lower bound Omega(n^1): 63.53/17.15 63.53/17.15 The rewrite sequence 63.53/17.15 63.53/17.15 mark(U15(X1, X2)) ->^+ a__U15(mark(X1), X2) 63.53/17.15 63.53/17.15 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 63.53/17.15 63.53/17.15 The pumping substitution is [X1 / U15(X1, X2)]. 63.53/17.15 63.53/17.15 The result substitution is [ ]. 63.53/17.15 63.53/17.15 63.53/17.15 63.53/17.15 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (4) 63.53/17.15 Complex Obligation (BEST) 63.53/17.15 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (5) 63.53/17.15 Obligation: 63.53/17.15 Proved the lower bound n^1 for the following obligation: 63.53/17.15 63.53/17.15 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 63.53/17.15 63.53/17.15 63.53/17.15 The TRS R consists of the following rules: 63.53/17.15 63.53/17.15 a__U101(tt, M, N) -> a__U102(a__isNatKind(M), M, N) 63.53/17.15 a__U102(tt, M, N) -> a__U103(a__isNat(N), M, N) 63.53/17.15 a__U103(tt, M, N) -> a__U104(a__isNatKind(N), M, N) 63.53/17.15 a__U104(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) 63.53/17.15 a__U11(tt, V1, V2) -> a__U12(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U12(tt, V1, V2) -> a__U13(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U13(tt, V1, V2) -> a__U14(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U14(tt, V1, V2) -> a__U15(a__isNat(V1), V2) 63.53/17.15 a__U15(tt, V2) -> a__U16(a__isNat(V2)) 63.53/17.15 a__U16(tt) -> tt 63.53/17.15 a__U21(tt, V1) -> a__U22(a__isNatKind(V1), V1) 63.53/17.15 a__U22(tt, V1) -> a__U23(a__isNat(V1)) 63.53/17.15 a__U23(tt) -> tt 63.53/17.15 a__U31(tt, V1, V2) -> a__U32(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U32(tt, V1, V2) -> a__U33(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U33(tt, V1, V2) -> a__U34(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U34(tt, V1, V2) -> a__U35(a__isNat(V1), V2) 63.53/17.15 a__U35(tt, V2) -> a__U36(a__isNat(V2)) 63.53/17.15 a__U36(tt) -> tt 63.53/17.15 a__U41(tt, V2) -> a__U42(a__isNatKind(V2)) 63.53/17.15 a__U42(tt) -> tt 63.53/17.15 a__U51(tt) -> tt 63.53/17.15 a__U61(tt, V2) -> a__U62(a__isNatKind(V2)) 63.53/17.15 a__U62(tt) -> tt 63.53/17.15 a__U71(tt, N) -> a__U72(a__isNatKind(N), N) 63.53/17.15 a__U72(tt, N) -> mark(N) 63.53/17.15 a__U81(tt, M, N) -> a__U82(a__isNatKind(M), M, N) 63.53/17.15 a__U82(tt, M, N) -> a__U83(a__isNat(N), M, N) 63.53/17.15 a__U83(tt, M, N) -> a__U84(a__isNatKind(N), M, N) 63.53/17.15 a__U84(tt, M, N) -> s(a__plus(mark(N), mark(M))) 63.53/17.15 a__U91(tt, N) -> a__U92(a__isNatKind(N)) 63.53/17.15 a__U92(tt) -> 0 63.53/17.15 a__isNat(0) -> tt 63.53/17.15 a__isNat(plus(V1, V2)) -> a__U11(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) 63.53/17.15 a__isNat(x(V1, V2)) -> a__U31(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNatKind(0) -> tt 63.53/17.15 a__isNatKind(plus(V1, V2)) -> a__U41(a__isNatKind(V1), V2) 63.53/17.15 a__isNatKind(s(V1)) -> a__U51(a__isNatKind(V1)) 63.53/17.15 a__isNatKind(x(V1, V2)) -> a__U61(a__isNatKind(V1), V2) 63.53/17.15 a__plus(N, 0) -> a__U71(a__isNat(N), N) 63.53/17.15 a__plus(N, s(M)) -> a__U81(a__isNat(M), M, N) 63.53/17.15 a__x(N, 0) -> a__U91(a__isNat(N), N) 63.53/17.15 a__x(N, s(M)) -> a__U101(a__isNat(M), M, N) 63.53/17.15 mark(U101(X1, X2, X3)) -> a__U101(mark(X1), X2, X3) 63.53/17.15 mark(U102(X1, X2, X3)) -> a__U102(mark(X1), X2, X3) 63.53/17.15 mark(isNatKind(X)) -> a__isNatKind(X) 63.53/17.15 mark(U103(X1, X2, X3)) -> a__U103(mark(X1), X2, X3) 63.53/17.15 mark(isNat(X)) -> a__isNat(X) 63.53/17.15 mark(U104(X1, X2, X3)) -> a__U104(mark(X1), X2, X3) 63.53/17.15 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 63.53/17.15 mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) 63.53/17.15 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 63.53/17.15 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 63.53/17.15 mark(U13(X1, X2, X3)) -> a__U13(mark(X1), X2, X3) 63.53/17.15 mark(U14(X1, X2, X3)) -> a__U14(mark(X1), X2, X3) 63.53/17.15 mark(U15(X1, X2)) -> a__U15(mark(X1), X2) 63.53/17.15 mark(U16(X)) -> a__U16(mark(X)) 63.53/17.15 mark(U21(X1, X2)) -> a__U21(mark(X1), X2) 63.53/17.15 mark(U22(X1, X2)) -> a__U22(mark(X1), X2) 63.53/17.15 mark(U23(X)) -> a__U23(mark(X)) 63.53/17.15 mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) 63.53/17.15 mark(U32(X1, X2, X3)) -> a__U32(mark(X1), X2, X3) 63.53/17.15 mark(U33(X1, X2, X3)) -> a__U33(mark(X1), X2, X3) 63.53/17.15 mark(U34(X1, X2, X3)) -> a__U34(mark(X1), X2, X3) 63.53/17.15 mark(U35(X1, X2)) -> a__U35(mark(X1), X2) 63.53/17.15 mark(U36(X)) -> a__U36(mark(X)) 63.53/17.15 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 63.53/17.15 mark(U42(X)) -> a__U42(mark(X)) 63.53/17.15 mark(U51(X)) -> a__U51(mark(X)) 63.53/17.15 mark(U61(X1, X2)) -> a__U61(mark(X1), X2) 63.53/17.15 mark(U62(X)) -> a__U62(mark(X)) 63.53/17.15 mark(U71(X1, X2)) -> a__U71(mark(X1), X2) 63.53/17.15 mark(U72(X1, X2)) -> a__U72(mark(X1), X2) 63.53/17.15 mark(U81(X1, X2, X3)) -> a__U81(mark(X1), X2, X3) 63.53/17.15 mark(U82(X1, X2, X3)) -> a__U82(mark(X1), X2, X3) 63.53/17.15 mark(U83(X1, X2, X3)) -> a__U83(mark(X1), X2, X3) 63.53/17.15 mark(U84(X1, X2, X3)) -> a__U84(mark(X1), X2, X3) 63.53/17.15 mark(U91(X1, X2)) -> a__U91(mark(X1), X2) 63.53/17.15 mark(U92(X)) -> a__U92(mark(X)) 63.53/17.15 mark(tt) -> tt 63.53/17.15 mark(s(X)) -> s(mark(X)) 63.53/17.15 mark(0) -> 0 63.53/17.15 a__U101(X1, X2, X3) -> U101(X1, X2, X3) 63.53/17.15 a__U102(X1, X2, X3) -> U102(X1, X2, X3) 63.53/17.15 a__isNatKind(X) -> isNatKind(X) 63.53/17.15 a__U103(X1, X2, X3) -> U103(X1, X2, X3) 63.53/17.15 a__isNat(X) -> isNat(X) 63.53/17.15 a__U104(X1, X2, X3) -> U104(X1, X2, X3) 63.53/17.15 a__plus(X1, X2) -> plus(X1, X2) 63.53/17.15 a__x(X1, X2) -> x(X1, X2) 63.53/17.15 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 63.53/17.15 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 63.53/17.15 a__U13(X1, X2, X3) -> U13(X1, X2, X3) 63.53/17.15 a__U14(X1, X2, X3) -> U14(X1, X2, X3) 63.53/17.15 a__U15(X1, X2) -> U15(X1, X2) 63.53/17.15 a__U16(X) -> U16(X) 63.53/17.15 a__U21(X1, X2) -> U21(X1, X2) 63.53/17.15 a__U22(X1, X2) -> U22(X1, X2) 63.53/17.15 a__U23(X) -> U23(X) 63.53/17.15 a__U31(X1, X2, X3) -> U31(X1, X2, X3) 63.53/17.15 a__U32(X1, X2, X3) -> U32(X1, X2, X3) 63.53/17.15 a__U33(X1, X2, X3) -> U33(X1, X2, X3) 63.53/17.15 a__U34(X1, X2, X3) -> U34(X1, X2, X3) 63.53/17.15 a__U35(X1, X2) -> U35(X1, X2) 63.53/17.15 a__U36(X) -> U36(X) 63.53/17.15 a__U41(X1, X2) -> U41(X1, X2) 63.53/17.15 a__U42(X) -> U42(X) 63.53/17.15 a__U51(X) -> U51(X) 63.53/17.15 a__U61(X1, X2) -> U61(X1, X2) 63.53/17.15 a__U62(X) -> U62(X) 63.53/17.15 a__U71(X1, X2) -> U71(X1, X2) 63.53/17.15 a__U72(X1, X2) -> U72(X1, X2) 63.53/17.15 a__U81(X1, X2, X3) -> U81(X1, X2, X3) 63.53/17.15 a__U82(X1, X2, X3) -> U82(X1, X2, X3) 63.53/17.15 a__U83(X1, X2, X3) -> U83(X1, X2, X3) 63.53/17.15 a__U84(X1, X2, X3) -> U84(X1, X2, X3) 63.53/17.15 a__U91(X1, X2) -> U91(X1, X2) 63.53/17.15 a__U92(X) -> U92(X) 63.53/17.15 63.53/17.15 S is empty. 63.53/17.15 Rewrite Strategy: INNERMOST 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (6) LowerBoundPropagationProof (FINISHED) 63.53/17.15 Propagated lower bound. 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (7) 63.53/17.15 BOUNDS(n^1, INF) 63.53/17.15 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (8) 63.53/17.15 Obligation: 63.53/17.15 Analyzing the following TRS for decreasing loops: 63.53/17.15 63.53/17.15 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 63.53/17.15 63.53/17.15 63.53/17.15 The TRS R consists of the following rules: 63.53/17.15 63.53/17.15 a__U101(tt, M, N) -> a__U102(a__isNatKind(M), M, N) 63.53/17.15 a__U102(tt, M, N) -> a__U103(a__isNat(N), M, N) 63.53/17.15 a__U103(tt, M, N) -> a__U104(a__isNatKind(N), M, N) 63.53/17.15 a__U104(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) 63.53/17.15 a__U11(tt, V1, V2) -> a__U12(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U12(tt, V1, V2) -> a__U13(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U13(tt, V1, V2) -> a__U14(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U14(tt, V1, V2) -> a__U15(a__isNat(V1), V2) 63.53/17.15 a__U15(tt, V2) -> a__U16(a__isNat(V2)) 63.53/17.15 a__U16(tt) -> tt 63.53/17.15 a__U21(tt, V1) -> a__U22(a__isNatKind(V1), V1) 63.53/17.15 a__U22(tt, V1) -> a__U23(a__isNat(V1)) 63.53/17.15 a__U23(tt) -> tt 63.53/17.15 a__U31(tt, V1, V2) -> a__U32(a__isNatKind(V1), V1, V2) 63.53/17.15 a__U32(tt, V1, V2) -> a__U33(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U33(tt, V1, V2) -> a__U34(a__isNatKind(V2), V1, V2) 63.53/17.15 a__U34(tt, V1, V2) -> a__U35(a__isNat(V1), V2) 63.53/17.15 a__U35(tt, V2) -> a__U36(a__isNat(V2)) 63.53/17.15 a__U36(tt) -> tt 63.53/17.15 a__U41(tt, V2) -> a__U42(a__isNatKind(V2)) 63.53/17.15 a__U42(tt) -> tt 63.53/17.15 a__U51(tt) -> tt 63.53/17.15 a__U61(tt, V2) -> a__U62(a__isNatKind(V2)) 63.53/17.15 a__U62(tt) -> tt 63.53/17.15 a__U71(tt, N) -> a__U72(a__isNatKind(N), N) 63.53/17.15 a__U72(tt, N) -> mark(N) 63.53/17.15 a__U81(tt, M, N) -> a__U82(a__isNatKind(M), M, N) 63.53/17.15 a__U82(tt, M, N) -> a__U83(a__isNat(N), M, N) 63.53/17.15 a__U83(tt, M, N) -> a__U84(a__isNatKind(N), M, N) 63.53/17.15 a__U84(tt, M, N) -> s(a__plus(mark(N), mark(M))) 63.53/17.15 a__U91(tt, N) -> a__U92(a__isNatKind(N)) 63.53/17.15 a__U92(tt) -> 0 63.53/17.15 a__isNat(0) -> tt 63.53/17.15 a__isNat(plus(V1, V2)) -> a__U11(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) 63.53/17.15 a__isNat(x(V1, V2)) -> a__U31(a__isNatKind(V1), V1, V2) 63.53/17.15 a__isNatKind(0) -> tt 63.53/17.15 a__isNatKind(plus(V1, V2)) -> a__U41(a__isNatKind(V1), V2) 63.53/17.15 a__isNatKind(s(V1)) -> a__U51(a__isNatKind(V1)) 63.53/17.15 a__isNatKind(x(V1, V2)) -> a__U61(a__isNatKind(V1), V2) 63.53/17.15 a__plus(N, 0) -> a__U71(a__isNat(N), N) 63.53/17.15 a__plus(N, s(M)) -> a__U81(a__isNat(M), M, N) 63.53/17.15 a__x(N, 0) -> a__U91(a__isNat(N), N) 63.53/17.15 a__x(N, s(M)) -> a__U101(a__isNat(M), M, N) 63.53/17.15 mark(U101(X1, X2, X3)) -> a__U101(mark(X1), X2, X3) 63.53/17.15 mark(U102(X1, X2, X3)) -> a__U102(mark(X1), X2, X3) 63.53/17.15 mark(isNatKind(X)) -> a__isNatKind(X) 63.53/17.15 mark(U103(X1, X2, X3)) -> a__U103(mark(X1), X2, X3) 63.53/17.15 mark(isNat(X)) -> a__isNat(X) 63.53/17.15 mark(U104(X1, X2, X3)) -> a__U104(mark(X1), X2, X3) 63.53/17.15 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 63.53/17.15 mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) 63.53/17.15 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 63.53/17.15 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 63.53/17.15 mark(U13(X1, X2, X3)) -> a__U13(mark(X1), X2, X3) 63.53/17.15 mark(U14(X1, X2, X3)) -> a__U14(mark(X1), X2, X3) 63.53/17.15 mark(U15(X1, X2)) -> a__U15(mark(X1), X2) 63.53/17.15 mark(U16(X)) -> a__U16(mark(X)) 63.53/17.15 mark(U21(X1, X2)) -> a__U21(mark(X1), X2) 63.53/17.15 mark(U22(X1, X2)) -> a__U22(mark(X1), X2) 63.53/17.15 mark(U23(X)) -> a__U23(mark(X)) 63.53/17.15 mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) 63.53/17.15 mark(U32(X1, X2, X3)) -> a__U32(mark(X1), X2, X3) 63.53/17.15 mark(U33(X1, X2, X3)) -> a__U33(mark(X1), X2, X3) 63.53/17.15 mark(U34(X1, X2, X3)) -> a__U34(mark(X1), X2, X3) 63.53/17.15 mark(U35(X1, X2)) -> a__U35(mark(X1), X2) 63.53/17.15 mark(U36(X)) -> a__U36(mark(X)) 63.53/17.15 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 63.53/17.15 mark(U42(X)) -> a__U42(mark(X)) 63.53/17.15 mark(U51(X)) -> a__U51(mark(X)) 63.53/17.15 mark(U61(X1, X2)) -> a__U61(mark(X1), X2) 63.53/17.15 mark(U62(X)) -> a__U62(mark(X)) 63.53/17.15 mark(U71(X1, X2)) -> a__U71(mark(X1), X2) 63.53/17.15 mark(U72(X1, X2)) -> a__U72(mark(X1), X2) 63.53/17.15 mark(U81(X1, X2, X3)) -> a__U81(mark(X1), X2, X3) 63.53/17.15 mark(U82(X1, X2, X3)) -> a__U82(mark(X1), X2, X3) 63.53/17.15 mark(U83(X1, X2, X3)) -> a__U83(mark(X1), X2, X3) 63.53/17.15 mark(U84(X1, X2, X3)) -> a__U84(mark(X1), X2, X3) 63.53/17.15 mark(U91(X1, X2)) -> a__U91(mark(X1), X2) 63.53/17.15 mark(U92(X)) -> a__U92(mark(X)) 63.53/17.15 mark(tt) -> tt 63.53/17.15 mark(s(X)) -> s(mark(X)) 63.53/17.15 mark(0) -> 0 63.53/17.15 a__U101(X1, X2, X3) -> U101(X1, X2, X3) 63.53/17.15 a__U102(X1, X2, X3) -> U102(X1, X2, X3) 63.53/17.15 a__isNatKind(X) -> isNatKind(X) 63.53/17.15 a__U103(X1, X2, X3) -> U103(X1, X2, X3) 63.53/17.15 a__isNat(X) -> isNat(X) 63.53/17.15 a__U104(X1, X2, X3) -> U104(X1, X2, X3) 63.53/17.15 a__plus(X1, X2) -> plus(X1, X2) 63.53/17.15 a__x(X1, X2) -> x(X1, X2) 63.53/17.15 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 63.53/17.15 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 63.53/17.15 a__U13(X1, X2, X3) -> U13(X1, X2, X3) 63.53/17.15 a__U14(X1, X2, X3) -> U14(X1, X2, X3) 63.53/17.15 a__U15(X1, X2) -> U15(X1, X2) 63.53/17.15 a__U16(X) -> U16(X) 63.53/17.15 a__U21(X1, X2) -> U21(X1, X2) 63.53/17.15 a__U22(X1, X2) -> U22(X1, X2) 63.53/17.15 a__U23(X) -> U23(X) 63.53/17.15 a__U31(X1, X2, X3) -> U31(X1, X2, X3) 63.53/17.15 a__U32(X1, X2, X3) -> U32(X1, X2, X3) 63.53/17.15 a__U33(X1, X2, X3) -> U33(X1, X2, X3) 63.53/17.15 a__U34(X1, X2, X3) -> U34(X1, X2, X3) 63.53/17.15 a__U35(X1, X2) -> U35(X1, X2) 63.53/17.15 a__U36(X) -> U36(X) 63.53/17.15 a__U41(X1, X2) -> U41(X1, X2) 63.53/17.15 a__U42(X) -> U42(X) 63.53/17.15 a__U51(X) -> U51(X) 63.53/17.15 a__U61(X1, X2) -> U61(X1, X2) 63.53/17.15 a__U62(X) -> U62(X) 63.53/17.15 a__U71(X1, X2) -> U71(X1, X2) 63.53/17.15 a__U72(X1, X2) -> U72(X1, X2) 63.53/17.15 a__U81(X1, X2, X3) -> U81(X1, X2, X3) 63.53/17.15 a__U82(X1, X2, X3) -> U82(X1, X2, X3) 63.53/17.15 a__U83(X1, X2, X3) -> U83(X1, X2, X3) 63.53/17.15 a__U84(X1, X2, X3) -> U84(X1, X2, X3) 63.53/17.15 a__U91(X1, X2) -> U91(X1, X2) 63.53/17.15 a__U92(X) -> U92(X) 63.53/17.15 63.53/17.15 S is empty. 63.53/17.15 Rewrite Strategy: INNERMOST 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (9) DecreasingLoopProof (FINISHED) 63.53/17.15 The following loop(s) give(s) rise to the lower bound EXP: 63.53/17.15 63.53/17.15 The rewrite sequence 63.53/17.15 63.53/17.15 mark(U104(tt, X2, X3)) ->^+ a__plus(a__x(mark(X3), mark(X2)), mark(X3)) 63.53/17.15 63.53/17.15 gives rise to a decreasing loop by considering the right hand sides subterm at position [0,0]. 63.53/17.15 63.53/17.15 The pumping substitution is [X3 / U104(tt, X2, X3)]. 63.53/17.15 63.53/17.15 The result substitution is [ ]. 63.53/17.15 63.53/17.15 63.53/17.15 63.53/17.15 The rewrite sequence 63.53/17.15 63.53/17.15 mark(U104(tt, X2, X3)) ->^+ a__plus(a__x(mark(X3), mark(X2)), mark(X3)) 63.53/17.15 63.53/17.15 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 63.53/17.15 63.53/17.15 The pumping substitution is [X3 / U104(tt, X2, X3)]. 63.53/17.15 63.53/17.15 The result substitution is [ ]. 63.53/17.15 63.53/17.15 63.53/17.15 63.53/17.15 63.53/17.15 ---------------------------------------- 63.53/17.15 63.53/17.15 (10) 63.53/17.15 BOUNDS(EXP, INF) 63.83/17.26 EOF