/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) QTRSRRRProof [EQUIVALENT, 492 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 57 ms] (4) QTRS (5) RisEmptyProof [EQUIVALENT, 0 ms] (6) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: a__U11(tt, V1, V2) -> a__U12(a__isNat(V1), V2) a__U12(tt, V2) -> a__U13(a__isNat(V2)) a__U13(tt) -> tt a__U21(tt, V1) -> a__U22(a__isNat(V1)) a__U22(tt) -> tt a__U31(tt, V1, V2) -> a__U32(a__isNat(V1), V2) a__U32(tt, V2) -> a__U33(a__isNat(V2)) a__U33(tt) -> tt a__U41(tt, N) -> mark(N) a__U51(tt, M, N) -> s(a__plus(mark(N), mark(M))) a__U61(tt) -> 0 a__U71(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) a__and(tt, X) -> mark(X) a__isNat(0) -> tt a__isNat(plus(V1, V2)) -> a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2) a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) a__isNat(x(V1, V2)) -> a__U31(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2) a__isNatKind(0) -> tt a__isNatKind(plus(V1, V2)) -> a__and(a__isNatKind(V1), isNatKind(V2)) a__isNatKind(s(V1)) -> a__isNatKind(V1) a__isNatKind(x(V1, V2)) -> a__and(a__isNatKind(V1), isNatKind(V2)) a__plus(N, 0) -> a__U41(a__and(a__isNat(N), isNatKind(N)), N) a__plus(N, s(M)) -> a__U51(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) a__x(N, 0) -> a__U61(a__and(a__isNat(N), isNatKind(N))) a__x(N, s(M)) -> a__U71(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(U13(X)) -> a__U13(mark(X)) mark(U21(X1, X2)) -> a__U21(mark(X1), X2) mark(U22(X)) -> a__U22(mark(X)) mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) mark(U32(X1, X2)) -> a__U32(mark(X1), X2) mark(U33(X)) -> a__U33(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U51(X1, X2, X3)) -> a__U51(mark(X1), X2, X3) mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) mark(U61(X)) -> a__U61(mark(X)) mark(U71(X1, X2, X3)) -> a__U71(mark(X1), X2, X3) mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNatKind(X)) -> a__isNatKind(X) mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(0) -> 0 a__U11(X1, X2, X3) -> U11(X1, X2, X3) a__U12(X1, X2) -> U12(X1, X2) a__isNat(X) -> isNat(X) a__U13(X) -> U13(X) a__U21(X1, X2) -> U21(X1, X2) a__U22(X) -> U22(X) a__U31(X1, X2, X3) -> U31(X1, X2, X3) a__U32(X1, X2) -> U32(X1, X2) a__U33(X) -> U33(X) a__U41(X1, X2) -> U41(X1, X2) a__U51(X1, X2, X3) -> U51(X1, X2, X3) a__plus(X1, X2) -> plus(X1, X2) a__U61(X) -> U61(X) a__U71(X1, X2, X3) -> U71(X1, X2, X3) a__x(X1, X2) -> x(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNatKind(X) -> isNatKind(X) Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: a__U11/3(YES,YES,YES) tt/0) a__U12/2(YES,YES) a__isNat/1)YES( a__U13/1)YES( a__U21/2(YES,YES) a__U22/1(YES) a__U31/3(YES,YES,YES) a__U32/2(YES,YES) a__U33/1)YES( a__U41/2(YES,YES) mark/1)YES( a__U51/3(YES,YES,YES) s/1(YES) a__plus/2(YES,YES) a__U61/1)YES( 0/0) a__U71/3(YES,YES,YES) a__x/2(YES,YES) a__and/2(YES,YES) plus/2(YES,YES) a__isNatKind/1)YES( isNatKind/1)YES( x/2(YES,YES) and/2(YES,YES) isNat/1)YES( U11/3(YES,YES,YES) U12/2(YES,YES) U13/1)YES( U21/2(YES,YES) U22/1(YES) U31/3(YES,YES,YES) U32/2(YES,YES) U33/1)YES( U41/2(YES,YES) U51/3(YES,YES,YES) U61/1)YES( U71/3(YES,YES,YES) Quasi precedence: [tt, 0] > [a__U22_1, U22_1] [tt, 0] > [a__U32_2, U32_2] [tt, 0] > [a__U41_2, U41_2] [a__U71_3, a__x_2, x_2, U71_3] > [a__U31_3, U31_3] > [a__U32_2, U32_2] [a__U71_3, a__x_2, x_2, U71_3] > [a__U51_3, a__plus_2, plus_2, U51_3] > [a__U11_3, a__U12_2, U11_3, U12_2] [a__U71_3, a__x_2, x_2, U71_3] > [a__U51_3, a__plus_2, plus_2, U51_3] > [a__U41_2, U41_2] [a__U71_3, a__x_2, x_2, U71_3] > [a__U51_3, a__plus_2, plus_2, U51_3] > [s_1, a__and_2, and_2] > [a__U21_2, U21_2] > [a__U22_1, U22_1] Status: a__U11_3: multiset status tt: multiset status a__U12_2: multiset status a__U21_2: multiset status a__U22_1: multiset status a__U31_3: multiset status a__U32_2: multiset status a__U41_2: multiset status a__U51_3: [3,2,1] s_1: multiset status a__plus_2: [1,2] 0: multiset status a__U71_3: [2,3,1] a__x_2: [2,1] a__and_2: multiset status plus_2: [1,2] x_2: [2,1] and_2: multiset status U11_3: multiset status U12_2: multiset status U21_2: multiset status U22_1: multiset status U31_3: multiset status U32_2: multiset status U41_2: multiset status U51_3: [3,2,1] U71_3: [2,3,1] With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: a__U11(tt, V1, V2) -> a__U12(a__isNat(V1), V2) a__U12(tt, V2) -> a__U13(a__isNat(V2)) a__U21(tt, V1) -> a__U22(a__isNat(V1)) a__U22(tt) -> tt a__U31(tt, V1, V2) -> a__U32(a__isNat(V1), V2) a__U32(tt, V2) -> a__U33(a__isNat(V2)) a__U41(tt, N) -> mark(N) a__U51(tt, M, N) -> s(a__plus(mark(N), mark(M))) a__U71(tt, M, N) -> a__plus(a__x(mark(N), mark(M)), mark(N)) a__and(tt, X) -> mark(X) a__isNat(plus(V1, V2)) -> a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2) a__isNat(s(V1)) -> a__U21(a__isNatKind(V1), V1) a__isNat(x(V1, V2)) -> a__U31(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2) a__isNatKind(plus(V1, V2)) -> a__and(a__isNatKind(V1), isNatKind(V2)) a__isNatKind(s(V1)) -> a__isNatKind(V1) a__isNatKind(x(V1, V2)) -> a__and(a__isNatKind(V1), isNatKind(V2)) a__plus(N, 0) -> a__U41(a__and(a__isNat(N), isNatKind(N)), N) a__plus(N, s(M)) -> a__U51(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) a__x(N, 0) -> a__U61(a__and(a__isNat(N), isNatKind(N))) a__x(N, s(M)) -> a__U71(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: a__U13(tt) -> tt a__U33(tt) -> tt a__U61(tt) -> 0 a__isNat(0) -> tt a__isNatKind(0) -> tt mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(U13(X)) -> a__U13(mark(X)) mark(U21(X1, X2)) -> a__U21(mark(X1), X2) mark(U22(X)) -> a__U22(mark(X)) mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) mark(U32(X1, X2)) -> a__U32(mark(X1), X2) mark(U33(X)) -> a__U33(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U51(X1, X2, X3)) -> a__U51(mark(X1), X2, X3) mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) mark(U61(X)) -> a__U61(mark(X)) mark(U71(X1, X2, X3)) -> a__U71(mark(X1), X2, X3) mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNatKind(X)) -> a__isNatKind(X) mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(0) -> 0 a__U11(X1, X2, X3) -> U11(X1, X2, X3) a__U12(X1, X2) -> U12(X1, X2) a__isNat(X) -> isNat(X) a__U13(X) -> U13(X) a__U21(X1, X2) -> U21(X1, X2) a__U22(X) -> U22(X) a__U31(X1, X2, X3) -> U31(X1, X2, X3) a__U32(X1, X2) -> U32(X1, X2) a__U33(X) -> U33(X) a__U41(X1, X2) -> U41(X1, X2) a__U51(X1, X2, X3) -> U51(X1, X2, X3) a__plus(X1, X2) -> plus(X1, X2) a__U61(X) -> U61(X) a__U71(X1, X2, X3) -> U71(X1, X2, X3) a__x(X1, X2) -> x(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNatKind(X) -> isNatKind(X) Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Knuth-Bendix order [KBO] with precedence:mark_1 > a__U11_3 > a__U33_1 > s_1 > a__U61_1 > 0 > a__and_2 > U61_1 > a__U51_3 > U33_1 > a__U22_1 > a__U21_2 > U21_2 > a__U12_2 > a__x_2 > x_2 > a__isNat_1 > a__plus_2 > U12_2 > isNat_1 > plus_2 > a__U32_2 > U32_2 > a__isNatKind_1 > tt > a__U13_1 > U13_1 > isNatKind_1 > and_2 > a__U71_3 > U71_3 > U51_3 > a__U41_2 > U41_2 > a__U31_3 > U31_3 > U22_1 > U11_3 and weight map: tt=2 0=1 a__U13_1=1 a__U33_1=1 a__U61_1=1 a__isNat_1=1 a__isNatKind_1=1 mark_1=0 isNat_1=1 U13_1=1 U22_1=1 a__U22_1=1 U33_1=1 U61_1=1 isNatKind_1=1 s_1=1 U11_3=0 a__U11_3=0 U12_2=0 a__U12_2=0 U21_2=0 a__U21_2=0 U31_3=0 a__U31_3=0 U32_2=0 a__U32_2=0 U41_2=0 a__U41_2=0 U51_3=0 a__U51_3=0 plus_2=0 a__plus_2=0 U71_3=0 a__U71_3=0 x_2=0 a__x_2=0 and_2=0 a__and_2=0 The variable weight is 1With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: a__U13(tt) -> tt a__U33(tt) -> tt a__U61(tt) -> 0 a__isNat(0) -> tt a__isNatKind(0) -> tt mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(U13(X)) -> a__U13(mark(X)) mark(U21(X1, X2)) -> a__U21(mark(X1), X2) mark(U22(X)) -> a__U22(mark(X)) mark(U31(X1, X2, X3)) -> a__U31(mark(X1), X2, X3) mark(U32(X1, X2)) -> a__U32(mark(X1), X2) mark(U33(X)) -> a__U33(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U51(X1, X2, X3)) -> a__U51(mark(X1), X2, X3) mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) mark(U61(X)) -> a__U61(mark(X)) mark(U71(X1, X2, X3)) -> a__U71(mark(X1), X2, X3) mark(x(X1, X2)) -> a__x(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isNatKind(X)) -> a__isNatKind(X) mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(0) -> 0 a__U11(X1, X2, X3) -> U11(X1, X2, X3) a__U12(X1, X2) -> U12(X1, X2) a__isNat(X) -> isNat(X) a__U13(X) -> U13(X) a__U21(X1, X2) -> U21(X1, X2) a__U22(X) -> U22(X) a__U31(X1, X2, X3) -> U31(X1, X2, X3) a__U32(X1, X2) -> U32(X1, X2) a__U33(X) -> U33(X) a__U41(X1, X2) -> U41(X1, X2) a__U51(X1, X2, X3) -> U51(X1, X2, X3) a__plus(X1, X2) -> plus(X1, X2) a__U61(X) -> U61(X) a__U71(X1, X2, X3) -> U71(X1, X2, X3) a__x(X1, X2) -> x(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isNatKind(X) -> isNatKind(X) ---------------------------------------- (4) Obligation: Q restricted rewrite system: R is empty. Q is empty. ---------------------------------------- (5) RisEmptyProof (EQUIVALENT) The TRS R is empty. Hence, termination is trivially proven. ---------------------------------------- (6) YES