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