/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/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, 32 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) QDP (5) QDPOrderProof [EQUIVALENT, 686 ms] (6) QDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) AND (9) QDP (10) QDPOrderProof [EQUIVALENT, 45 ms] (11) QDP (12) DependencyGraphProof [EQUIVALENT, 0 ms] (13) TRUE (14) QDP (15) QDPOrderProof [EQUIVALENT, 168 ms] (16) QDP (17) DependencyGraphProof [EQUIVALENT, 0 ms] (18) TRUE ---------------------------------------- (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(X1, X2) activate(n__s(X)) -> s(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(X1, X2) ACTIVATE(n__s(X)) -> S(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(X1, X2) activate(n__s(X)) -> s(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(X1, 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) 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(X1, X2) activate(n__s(X)) -> s(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. U12^1(tt, V1, V2) -> ISNATKIND(activate(V2)) 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)) 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)) 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) 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) -> 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) -> 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 + 2 POL( ISNATKIND_1(x_1) ) = 2x_1 + 1 POL( PLUS_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 1} 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 + 2 POL( U21^1_2(x_1, x_2) ) = 2x_2 + 2 POL( U22^1_2(x_1, x_2) ) = 2x_2 + 2 POL( U31^1_2(x_1, x_2) ) = 2x_2 + 1 POL( U51^1_2(x_1, x_2) ) = 2x_2 + 1 POL( U52^1_2(x_1, x_2) ) = 2x_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) ) = x_2 + 1 POL( tt ) = 0 POL( n__plus_2(x_1, x_2) ) = 2x_1 + x_2 POL( plus_2(x_1, x_2) ) = 2x_1 + x_2 POL( U51_2(x_1, x_2) ) = x_2 + 2 POL( isNat_1(x_1) ) = 2 POL( isNatKind_1(x_1) ) = max{0, -2} POL( n__s_1(x_1) ) = x_1 + 2 POL( s_1(x_1) ) = x_1 + 2 POL( U11_3(x_1, ..., x_3) ) = 2 POL( U12_3(x_1, ..., x_3) ) = 2 POL( U13_3(x_1, ..., x_3) ) = 2 POL( U14_3(x_1, ..., x_3) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 0 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) ) = x_2 + 2x_3 + 2 POL( U64_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U15_2(x_1, x_2) ) = 2 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 + 2x_3 + 2 POL( U63_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( ACTIVATE_1(x_1) ) = 2x_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(X1, X2) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(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)) U41(tt) -> tt plus(X1, X2) -> n__plus(X1, X2) plus(N, s(M)) -> U61(isNat(M), M, N) 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))) s(X) -> n__s(X) U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt 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)) 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)) 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)) ACTIVATE(n__plus(X1, X2)) -> PLUS(X1, X2) U52^1(tt, N) -> ACTIVATE(N) U51^1(tt, N) -> ISNATKIND(activate(N)) U21^1(tt, V1) -> U22^1(isNatKind(activate(V1)), activate(V1)) U22^1(tt, V1) -> ISNAT(activate(V1)) 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)) U62^1(tt, M, N) -> ISNAT(activate(N)) U14^1(tt, V1, V2) -> ISNAT(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(X1, X2) activate(n__s(X)) -> s(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 2 SCCs with 9 less nodes. ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(tt, V2) -> ISNATKIND(activate(V2)) ISNATKIND(n__plus(V1, V2)) -> U31^1(isNatKind(activate(V1)), activate(V2)) ISNATKIND(n__plus(V1, V2)) -> 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(X1, X2) activate(n__s(X)) -> s(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. ISNATKIND(n__plus(V1, V2)) -> U31^1(isNatKind(activate(V1)), activate(V2)) ISNATKIND(n__plus(V1, V2)) -> 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) ) = max{0, 2x_1 - 1} POL( U31^1_2(x_1, x_2) ) = 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 + 1 POL( tt ) = 0 POL( n__plus_2(x_1, x_2) ) = 2x_1 + 2x_2 + 1 POL( plus_2(x_1, x_2) ) = 2x_1 + 2x_2 + 1 POL( U51_2(x_1, x_2) ) = 2x_2 + 1 POL( isNat_1(x_1) ) = 2x_1 POL( isNatKind_1(x_1) ) = max{0, -2} POL( n__s_1(x_1) ) = 0 POL( s_1(x_1) ) = 0 POL( U11_3(x_1, ..., x_3) ) = 2 POL( U12_3(x_1, ..., x_3) ) = 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) ) = 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) ) = 0 POL( U62_3(x_1, ..., x_3) ) = max{0, -2} POL( U64_3(x_1, ..., x_3) ) = max{0, -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) ) = max{0, -2} POL( U63_3(x_1, ..., x_3) ) = max{0, -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(X1, X2) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(X) activate(X) -> X isNatKind(n__plus(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V2)) isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) U41(tt) -> tt 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)) 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))) s(X) -> n__s(X) U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt 0 -> n__0 ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(tt, V2) -> ISNATKIND(activate(V2)) 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(X1, X2) activate(n__s(X)) -> s(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 1 less node. ---------------------------------------- (13) TRUE ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: 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) -> U13^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U14^1(tt, V1, V2) -> ISNAT(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(X1, X2) activate(n__s(X)) -> s(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. ISNAT(n__plus(V1, V2)) -> U11^1(isNatKind(activate(V1)), activate(V1), activate(V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ISNAT_1(x_1) ) = max{0, 2x_1 - 2} POL( U11^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 POL( U12^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 POL( U13^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 POL( U14^1_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 POL( U15^1_2(x_1, x_2) ) = 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 + 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) ) = x_2 + 2 POL( isNat_1(x_1) ) = 2 POL( isNatKind_1(x_1) ) = max{0, -2} POL( n__s_1(x_1) ) = 0 POL( s_1(x_1) ) = max{0, -2} POL( U11_3(x_1, ..., x_3) ) = 2 POL( U12_3(x_1, ..., x_3) ) = 1 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) ) = 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) ) = max{0, -2} POL( U64_3(x_1, ..., x_3) ) = max{0, -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) ) = max{0, -2} POL( U63_3(x_1, ..., x_3) ) = max{0, -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(X1, X2) plus(N, 0) -> U51(isNat(N), N) U51(tt, N) -> U52(isNatKind(activate(N)), activate(N)) activate(n__s(X)) -> s(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)) U41(tt) -> tt plus(X1, X2) -> n__plus(X1, X2) plus(N, s(M)) -> U61(isNat(M), M, N) 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))) s(X) -> n__s(X) U31(tt, V2) -> U32(isNatKind(activate(V2))) U32(tt) -> tt 0 -> n__0 ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: 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)) U11^1(tt, V1, V2) -> U12^1(isNatKind(activate(V1)), activate(V1), activate(V2)) U12^1(tt, V1, V2) -> U13^1(isNatKind(activate(V2)), activate(V1), activate(V2)) U14^1(tt, V1, V2) -> ISNAT(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(X1, X2) activate(n__s(X)) -> s(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 6 less nodes. ---------------------------------------- (18) TRUE