/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) DependencyPairsProof [EQUIVALENT, 0 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) QDP (5) QDPOrderProof [EQUIVALENT, 837 ms] (6) QDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) AND (9) QDP (10) QDPOrderProof [EQUIVALENT, 169 ms] (11) QDP (12) DependencyGraphProof [EQUIVALENT, 0 ms] (13) TRUE (14) QDP (15) QDPOrderProof [EQUIVALENT, 53 ms] (16) QDP (17) DependencyGraphProof [EQUIVALENT, 0 ms] (18) TRUE (19) QDP (20) UsableRulesProof [EQUIVALENT, 0 ms] (21) QDP (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] (23) YES (24) QDP (25) QDPOrderProof [EQUIVALENT, 104 ms] (26) QDP (27) PisEmptyProof [EQUIVALENT, 0 ms] (28) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. ---------------------------------------- (1) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (2) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(tt, V1, V2) -> U12^1(isNatKind(activate(V1)), activate(V1), activate(V2)) U11^1(tt, V1, V2) -> ISNATKIND(activate(V1)) U11^1(tt, V1, V2) -> ACTIVATE(V1) U11^1(tt, V1, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> U13^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U12^1(tt, V1, V2) -> ISNATKIND(activate(V2)) U12^1(tt, V1, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> ACTIVATE(V1) U13^1(tt, V1, V2) -> U14^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U13^1(tt, V1, V2) -> ISNATKIND(activate(V2)) U13^1(tt, V1, V2) -> ACTIVATE(V2) U13^1(tt, V1, V2) -> ACTIVATE(V1) U14^1(tt, V1, V2) -> U15^1(isNat(activate(V1)), activate(V2)) U14^1(tt, V1, V2) -> ISNAT(activate(V1)) U14^1(tt, V1, V2) -> ACTIVATE(V1) U14^1(tt, V1, V2) -> ACTIVATE(V2) U15^1(tt, V2) -> U16^1(isNat(activate(V2))) U15^1(tt, V2) -> ISNAT(activate(V2)) U15^1(tt, V2) -> ACTIVATE(V2) U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) U21^1(tt, V1) -> ISNATKIND(activate(V1)) U21^1(tt, V1) -> ACTIVATE(V1) U22^1(tt, V1) -> U23^1(isNat(activate(V1))) U22^1(tt, V1) -> ISNAT(activate(V1)) U22^1(tt, V1) -> ACTIVATE(V1) U31^1(tt, V2) -> U32^1(isNatKind(activate(V2))) U31^1(tt, V2) -> ISNATKIND(activate(V2)) U31^1(tt, V2) -> ACTIVATE(V2) U51^1(tt, N) -> U52^1(isNatKind(activate(N)), activate(N)) U51^1(tt, N) -> ISNATKIND(activate(N)) U51^1(tt, N) -> ACTIVATE(N) U52^1(tt, N) -> ACTIVATE(N) U61^1(tt, M, N) -> U62^1(isNatKind(activate(M)), activate(M), activate(N)) U61^1(tt, M, N) -> ISNATKIND(activate(M)) U61^1(tt, M, N) -> ACTIVATE(M) U61^1(tt, M, N) -> ACTIVATE(N) U62^1(tt, M, N) -> U63^1(isNat(activate(N)), activate(M), activate(N)) U62^1(tt, M, N) -> ISNAT(activate(N)) U62^1(tt, M, N) -> ACTIVATE(N) U62^1(tt, M, N) -> ACTIVATE(M) U63^1(tt, M, N) -> U64^1(isNatKind(activate(N)), activate(M), activate(N)) U63^1(tt, M, N) -> ISNATKIND(activate(N)) U63^1(tt, M, N) -> ACTIVATE(N) U63^1(tt, M, N) -> ACTIVATE(M) U64^1(tt, M, N) -> S(plus(activate(N), activate(M))) U64^1(tt, M, N) -> PLUS(activate(N), activate(M)) U64^1(tt, M, N) -> ACTIVATE(N) U64^1(tt, M, N) -> ACTIVATE(M) ISNAT(n__plus(V1, V2)) -> U11^1(isNatKind(activate(V1)), activate(V1), activate(V2)) ISNAT(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V1) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V2) ISNAT(n__s(V1)) -> U21^1(isNatKind(activate(V1)), activate(V1)) ISNAT(n__s(V1)) -> ISNATKIND(activate(V1)) ISNAT(n__s(V1)) -> ACTIVATE(V1) ISNATKIND(n__plus(V1, V2)) -> U31^1(isNatKind(activate(V1)), activate(V2)) ISNATKIND(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V1) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V2) ISNATKIND(n__s(V1)) -> U41^1(isNatKind(activate(V1))) ISNATKIND(n__s(V1)) -> ISNATKIND(activate(V1)) ISNATKIND(n__s(V1)) -> ACTIVATE(V1) PLUS(N, 0) -> U51^1(isNat(N), N) PLUS(N, 0) -> ISNAT(N) PLUS(N, s(M)) -> U61^1(isNat(M), M, N) PLUS(N, s(M)) -> ISNAT(M) ACTIVATE(n__0) -> 0^1 ACTIVATE(n__plus(X1, X2)) -> PLUS(activate(X1), activate(X2)) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__s(X)) -> S(activate(X)) ACTIVATE(n__s(X)) -> ACTIVATE(X) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (3) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 7 less nodes. ---------------------------------------- (4) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(tt, V1, V2) -> U13^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U13^1(tt, V1, V2) -> U14^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U14^1(tt, V1, V2) -> U15^1(isNat(activate(V1)), activate(V2)) U15^1(tt, V2) -> ISNAT(activate(V2)) ISNAT(n__plus(V1, V2)) -> U11^1(isNatKind(activate(V1)), activate(V1), activate(V2)) U11^1(tt, V1, V2) -> U12^1(isNatKind(activate(V1)), activate(V1), activate(V2)) U12^1(tt, V1, V2) -> ISNATKIND(activate(V2)) ISNATKIND(n__plus(V1, V2)) -> U31^1(isNatKind(activate(V1)), activate(V2)) U31^1(tt, V2) -> ISNATKIND(activate(V2)) ISNATKIND(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V1) ACTIVATE(n__plus(X1, X2)) -> PLUS(activate(X1), activate(X2)) PLUS(N, 0) -> U51^1(isNat(N), N) U51^1(tt, N) -> U52^1(isNatKind(activate(N)), activate(N)) U52^1(tt, N) -> ACTIVATE(N) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__s(X)) -> ACTIVATE(X) U51^1(tt, N) -> ISNATKIND(activate(N)) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V2) ISNATKIND(n__s(V1)) -> ISNATKIND(activate(V1)) ISNATKIND(n__s(V1)) -> ACTIVATE(V1) U51^1(tt, N) -> ACTIVATE(N) PLUS(N, 0) -> ISNAT(N) ISNAT(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V1) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V2) ISNAT(n__s(V1)) -> U21^1(isNatKind(activate(V1)), activate(V1)) U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) U22^1(tt, V1) -> ISNAT(activate(V1)) ISNAT(n__s(V1)) -> ISNATKIND(activate(V1)) ISNAT(n__s(V1)) -> ACTIVATE(V1) U22^1(tt, V1) -> ACTIVATE(V1) U21^1(tt, V1) -> ISNATKIND(activate(V1)) U21^1(tt, V1) -> ACTIVATE(V1) PLUS(N, s(M)) -> U61^1(isNat(M), M, N) U61^1(tt, M, N) -> U62^1(isNatKind(activate(M)), activate(M), activate(N)) U62^1(tt, M, N) -> U63^1(isNat(activate(N)), activate(M), activate(N)) U63^1(tt, M, N) -> U64^1(isNatKind(activate(N)), activate(M), activate(N)) U64^1(tt, M, N) -> PLUS(activate(N), activate(M)) PLUS(N, s(M)) -> ISNAT(M) U64^1(tt, M, N) -> ACTIVATE(N) U64^1(tt, M, N) -> ACTIVATE(M) U63^1(tt, M, N) -> ISNATKIND(activate(N)) U63^1(tt, M, N) -> ACTIVATE(N) U63^1(tt, M, N) -> ACTIVATE(M) U62^1(tt, M, N) -> ISNAT(activate(N)) U62^1(tt, M, N) -> ACTIVATE(N) U62^1(tt, M, N) -> ACTIVATE(M) U61^1(tt, M, N) -> ISNATKIND(activate(M)) U61^1(tt, M, N) -> ACTIVATE(M) U61^1(tt, M, N) -> ACTIVATE(N) U31^1(tt, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> ACTIVATE(V1) U11^1(tt, V1, V2) -> ISNATKIND(activate(V1)) U11^1(tt, V1, V2) -> ACTIVATE(V1) U11^1(tt, V1, V2) -> ACTIVATE(V2) U15^1(tt, V2) -> ACTIVATE(V2) U14^1(tt, V1, V2) -> ISNAT(activate(V1)) U14^1(tt, V1, V2) -> ACTIVATE(V1) U14^1(tt, V1, V2) -> ACTIVATE(V2) U13^1(tt, V1, V2) -> ISNATKIND(activate(V2)) U13^1(tt, V1, V2) -> ACTIVATE(V2) U13^1(tt, V1, V2) -> ACTIVATE(V1) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (5) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U14^1(tt, V1, V2) -> U15^1(isNat(activate(V1)), activate(V2)) ISNAT(n__plus(V1, V2)) -> U11^1(isNatKind(activate(V1)), activate(V1), activate(V2)) U12^1(tt, V1, V2) -> ISNATKIND(activate(V2)) U31^1(tt, V2) -> ISNATKIND(activate(V2)) ISNATKIND(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V1) PLUS(N, 0) -> U51^1(isNat(N), N) U51^1(tt, N) -> U52^1(isNatKind(activate(N)), activate(N)) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__plus(X1, X2)) -> ACTIVATE(X2) U51^1(tt, N) -> ISNATKIND(activate(N)) ISNATKIND(n__plus(V1, V2)) -> ACTIVATE(V2) U51^1(tt, N) -> ACTIVATE(N) PLUS(N, 0) -> ISNAT(N) ISNAT(n__plus(V1, V2)) -> ISNATKIND(activate(V1)) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V1) ISNAT(n__plus(V1, V2)) -> ACTIVATE(V2) ISNAT(n__s(V1)) -> ISNATKIND(activate(V1)) ISNAT(n__s(V1)) -> ACTIVATE(V1) U22^1(tt, V1) -> ACTIVATE(V1) U21^1(tt, V1) -> ISNATKIND(activate(V1)) U21^1(tt, V1) -> ACTIVATE(V1) PLUS(N, s(M)) -> ISNAT(M) U64^1(tt, M, N) -> ACTIVATE(N) U64^1(tt, M, N) -> ACTIVATE(M) U63^1(tt, M, N) -> ISNATKIND(activate(N)) U63^1(tt, M, N) -> ACTIVATE(N) U63^1(tt, M, N) -> ACTIVATE(M) U62^1(tt, M, N) -> ISNAT(activate(N)) U62^1(tt, M, N) -> ACTIVATE(N) U62^1(tt, M, N) -> ACTIVATE(M) U61^1(tt, M, N) -> ISNATKIND(activate(M)) U61^1(tt, M, N) -> ACTIVATE(M) U61^1(tt, M, N) -> ACTIVATE(N) U31^1(tt, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> ACTIVATE(V2) U12^1(tt, V1, V2) -> ACTIVATE(V1) U11^1(tt, V1, V2) -> ISNATKIND(activate(V1)) U11^1(tt, V1, V2) -> ACTIVATE(V1) U11^1(tt, V1, V2) -> ACTIVATE(V2) U15^1(tt, V2) -> ACTIVATE(V2) U14^1(tt, V1, V2) -> ISNAT(activate(V1)) U14^1(tt, V1, V2) -> ACTIVATE(V1) U14^1(tt, V1, V2) -> ACTIVATE(V2) U13^1(tt, V1, V2) -> ISNATKIND(activate(V2)) U13^1(tt, V1, V2) -> ACTIVATE(V2) U13^1(tt, V1, V2) -> ACTIVATE(V1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ISNAT_1(x_1) ) = 2x_1 + 1 POL( ISNATKIND_1(x_1) ) = x_1 POL( PLUS_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( U11^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U12^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U13^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U14^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U15^1_2(x_1, x_2) ) = 2x_2 + 1 POL( U21^1_2(x_1, x_2) ) = 2x_2 + 1 POL( U22^1_2(x_1, x_2) ) = 2x_2 + 1 POL( U31^1_2(x_1, x_2) ) = x_2 + 2 POL( U51^1_2(x_1, x_2) ) = x_2 + 1 POL( U52^1_2(x_1, x_2) ) = x_2 POL( U61^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U62^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U63^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U64^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( activate_1(x_1) ) = x_1 POL( n__0 ) = 2 POL( 0 ) = 2 POL( U52_2(x_1, x_2) ) = 2x_2 + 2 POL( tt ) = 0 POL( n__plus_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( plus_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( U51_2(x_1, x_2) ) = 2x_2 + 2 POL( isNat_1(x_1) ) = max{0, -2} POL( isNatKind_1(x_1) ) = max{0, -2} POL( n__s_1(x_1) ) = x_1 POL( s_1(x_1) ) = x_1 POL( U11_3(x_1, ..., x_3) ) = max{0, -2} POL( U12_3(x_1, ..., x_3) ) = max{0, -2} POL( U13_3(x_1, ..., x_3) ) = max{0, -2} POL( U14_3(x_1, ..., x_3) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 0 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_1(x_1) ) = 0 POL( U41_1(x_1) ) = 0 POL( U62_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U64_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U15_2(x_1, x_2) ) = max{0, -2} POL( U16_1(x_1) ) = max{0, -2} POL( U23_1(x_1) ) = max{0, -2} POL( U61_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U63_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( ACTIVATE_1(x_1) ) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: activate(n__0) -> 0 U52(tt, N) -> activate(N) activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) s(X) -> n__s(X) plus(X1, X2) -> n__plus(X1, X2) plus(N, s(M)) -> U61(isNat(M), M, N) U41(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) 0 -> n__0 ---------------------------------------- (6) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(tt, V1, V2) -> U13^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U13^1(tt, V1, V2) -> U14^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U15^1(tt, V2) -> ISNAT(activate(V2)) U11^1(tt, V1, V2) -> U12^1(isNatKind(activate(V1)), activate(V1), activate(V2)) ISNATKIND(n__plus(V1, V2)) -> U31^1(isNatKind(activate(V1)), activate(V2)) ACTIVATE(n__plus(X1, X2)) -> PLUS(activate(X1), activate(X2)) U52^1(tt, N) -> ACTIVATE(N) ACTIVATE(n__s(X)) -> ACTIVATE(X) ISNATKIND(n__s(V1)) -> ISNATKIND(activate(V1)) ISNATKIND(n__s(V1)) -> ACTIVATE(V1) ISNAT(n__s(V1)) -> U21^1(isNatKind(activate(V1)), activate(V1)) U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) U22^1(tt, V1) -> ISNAT(activate(V1)) PLUS(N, s(M)) -> U61^1(isNat(M), M, N) U61^1(tt, M, N) -> U62^1(isNatKind(activate(M)), activate(M), activate(N)) U62^1(tt, M, N) -> U63^1(isNat(activate(N)), activate(M), activate(N)) U63^1(tt, M, N) -> U64^1(isNatKind(activate(N)), activate(M), activate(N)) U64^1(tt, M, N) -> PLUS(activate(N), activate(M)) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (7) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 8 less nodes. ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(tt, M, N) -> U62^1(isNatKind(activate(M)), activate(M), activate(N)) U62^1(tt, M, N) -> U63^1(isNat(activate(N)), activate(M), activate(N)) U63^1(tt, M, N) -> U64^1(isNatKind(activate(N)), activate(M), activate(N)) U64^1(tt, M, N) -> PLUS(activate(N), activate(M)) PLUS(N, s(M)) -> U61^1(isNat(M), M, N) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. PLUS(N, s(M)) -> U61^1(isNat(M), M, N) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( PLUS_2(x_1, x_2) ) = max{0, 2x_2 - 1} POL( U61^1_3(x_1, ..., x_3) ) = 2x_2 POL( U62^1_3(x_1, ..., x_3) ) = 2x_2 POL( U63^1_3(x_1, ..., x_3) ) = 2x_2 POL( U64^1_3(x_1, ..., x_3) ) = 2x_2 POL( activate_1(x_1) ) = x_1 POL( n__0 ) = 0 POL( 0 ) = 0 POL( U52_2(x_1, x_2) ) = x_2 POL( tt ) = 0 POL( n__plus_2(x_1, x_2) ) = x_1 + 2x_2 POL( plus_2(x_1, x_2) ) = x_1 + 2x_2 POL( U51_2(x_1, x_2) ) = x_2 POL( isNat_1(x_1) ) = 2x_1 + 2 POL( isNatKind_1(x_1) ) = max{0, -2} POL( n__s_1(x_1) ) = x_1 + 1 POL( s_1(x_1) ) = x_1 + 1 POL( U11_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U12_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U13_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U14_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_1(x_1) ) = max{0, -2} POL( U41_1(x_1) ) = max{0, -2} POL( U62_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 1 POL( U64_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 1 POL( U15_2(x_1, x_2) ) = 2x_2 + 1 POL( U16_1(x_1) ) = max{0, -2} POL( U23_1(x_1) ) = max{0, -2} POL( U61_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 1 POL( U63_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: activate(n__0) -> 0 U52(tt, N) -> activate(N) activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) s(X) -> n__s(X) plus(X1, X2) -> n__plus(X1, X2) plus(N, s(M)) -> U61(isNat(M), M, N) U41(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) 0 -> n__0 ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(tt, M, N) -> U62^1(isNatKind(activate(M)), activate(M), activate(N)) U62^1(tt, M, N) -> U63^1(isNat(activate(N)), activate(M), activate(N)) U63^1(tt, M, N) -> U64^1(isNatKind(activate(N)), activate(M), activate(N)) U64^1(tt, M, N) -> PLUS(activate(N), activate(M)) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes. ---------------------------------------- (13) TRUE ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) U22^1(tt, V1) -> ISNAT(activate(V1)) ISNAT(n__s(V1)) -> U21^1(isNatKind(activate(V1)), activate(V1)) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U22^1(tt, V1) -> ISNAT(activate(V1)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ISNAT_1(x_1) ) = 2x_1 POL( U21^1_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( U22^1_2(x_1, x_2) ) = 2x_2 + 2 POL( activate_1(x_1) ) = x_1 POL( n__0 ) = 2 POL( 0 ) = 2 POL( U52_2(x_1, x_2) ) = x_2 + 2 POL( tt ) = 0 POL( n__plus_2(x_1, x_2) ) = x_1 + x_2 POL( plus_2(x_1, x_2) ) = x_1 + x_2 POL( U51_2(x_1, x_2) ) = x_2 + 2 POL( isNat_1(x_1) ) = 2x_1 + 2 POL( isNatKind_1(x_1) ) = 1 POL( n__s_1(x_1) ) = x_1 + 2 POL( s_1(x_1) ) = x_1 + 2 POL( U11_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( U12_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( U13_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 1 POL( U14_3(x_1, ..., x_3) ) = 2x_2 + 1 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_1(x_1) ) = max{0, -2} POL( U41_1(x_1) ) = 0 POL( U62_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 POL( U64_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 POL( U15_2(x_1, x_2) ) = 1 POL( U16_1(x_1) ) = max{0, -2} POL( U23_1(x_1) ) = max{0, -2} POL( U61_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 POL( U63_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: activate(n__0) -> 0 U52(tt, N) -> activate(N) activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) s(X) -> n__s(X) plus(X1, X2) -> n__plus(X1, X2) plus(N, s(M)) -> U61(isNat(M), M, N) isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) U41(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) 0 -> n__0 ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) ISNAT(n__s(V1)) -> U21^1(isNatKind(activate(V1)), activate(V1)) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes. ---------------------------------------- (18) TRUE ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVATE(n__s(X)) -> ACTIVATE(X) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVATE(n__s(X)) -> ACTIVATE(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ACTIVATE(n__s(X)) -> ACTIVATE(X) The graph contains the following edges 1 > 1 ---------------------------------------- (23) YES ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATKIND(n__s(V1)) -> ISNATKIND(activate(V1)) The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ISNATKIND(n__s(V1)) -> ISNATKIND(activate(V1)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ISNATKIND_1(x_1) ) = 2x_1 POL( activate_1(x_1) ) = x_1 POL( n__0 ) = 2 POL( 0 ) = 2 POL( U52_2(x_1, x_2) ) = x_2 POL( tt ) = 2 POL( n__plus_2(x_1, x_2) ) = 2x_1 + x_2 + 1 POL( plus_2(x_1, x_2) ) = 2x_1 + x_2 + 1 POL( U51_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( isNat_1(x_1) ) = x_1 + 1 POL( isNatKind_1(x_1) ) = 2x_1 POL( n__s_1(x_1) ) = x_1 + 1 POL( s_1(x_1) ) = x_1 + 1 POL( U15_2(x_1, x_2) ) = x_2 + 1 POL( U16_1(x_1) ) = x_1 POL( U23_1(x_1) ) = 2 POL( U61_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U63_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U11_3(x_1, ..., x_3) ) = x_3 + 2 POL( U12_3(x_1, ..., x_3) ) = x_3 + 2 POL( U13_3(x_1, ..., x_3) ) = x_3 + 2 POL( U14_3(x_1, ..., x_3) ) = x_3 + 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2x_2 + 2 POL( U32_1(x_1) ) = 2 POL( U41_1(x_1) ) = 2 POL( U62_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U64_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: activate(n__0) -> 0 U52(tt, N) -> activate(N) activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X s(X) -> n__s(X) plus(X1, X2) -> n__plus(X1, X2) isNat(n__0) -> tt plus(N, s(M)) -> U61(isNat(M), M, N) isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) U41(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) 0 -> n__0 ---------------------------------------- (26) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: U11(tt, V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) U12(tt, V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) U13(tt, V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) U14(tt, V1, V2) -> U15(isNat(activate(V1)), activate(V2)) U15(tt, V2) -> U16(isNat(activate(V2))) U16(tt) -> tt U21(tt, V1) -> U22(isNatKind(activate(V1)), activate(V1)) U22(tt, V1) -> U23(isNat(activate(V1))) U23(tt) -> tt U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt U41(tt) -> tt U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) U52(tt, N) -> activate(N) U61(tt, M, N) -> U62(isNatKind(activate(M)), activate(M), activate(N)) U62(tt, M, N) -> U63(isNat(activate(N)), activate(M), activate(N)) U63(tt, M, N) -> U64(isNatKind(activate(N)), activate(M), activate(N)) U64(tt, M, N) -> s(plus(activate(N), activate(M))) isNat(n__0) -> tt isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) isNatKind(n__0) -> tt isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) plus(N, 0) -> U51(isNat(N), N) plus(N, s(M)) -> U61(isNat(M), M, N) 0 -> n__0 plus(X1, X2) -> n__plus(X1, X2) s(X) -> n__s(X) activate(n__0) -> 0 activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (28) YES