8.18/2.94 YES 8.18/2.96 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 8.18/2.96 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 8.18/2.96 8.18/2.96 8.18/2.96 Termination w.r.t. Q of the given QTRS could be proven: 8.18/2.96 8.18/2.96 (0) QTRS 8.18/2.96 (1) QTRSRRRProof [EQUIVALENT, 154 ms] 8.18/2.96 (2) QTRS 8.18/2.96 (3) QTRSRRRProof [EQUIVALENT, 59 ms] 8.18/2.96 (4) QTRS 8.18/2.96 (5) QTRSRRRProof [EQUIVALENT, 54 ms] 8.18/2.96 (6) QTRS 8.18/2.96 (7) QTRSRRRProof [EQUIVALENT, 28 ms] 8.18/2.96 (8) QTRS 8.18/2.96 (9) QTRSRRRProof [EQUIVALENT, 29 ms] 8.18/2.96 (10) QTRS 8.18/2.96 (11) QTRSRRRProof [EQUIVALENT, 27 ms] 8.18/2.96 (12) QTRS 8.18/2.96 (13) QTRSRRRProof [EQUIVALENT, 19 ms] 8.18/2.96 (14) QTRS 8.18/2.96 (15) QTRSRRRProof [EQUIVALENT, 16 ms] 8.18/2.96 (16) QTRS 8.18/2.96 (17) QTRSRRRProof [EQUIVALENT, 15 ms] 8.18/2.96 (18) QTRS 8.18/2.96 (19) QTRSRRRProof [EQUIVALENT, 0 ms] 8.18/2.96 (20) QTRS 8.18/2.96 (21) QTRSRRRProof [EQUIVALENT, 9 ms] 8.18/2.96 (22) QTRS 8.18/2.96 (23) QTRSRRRProof [EQUIVALENT, 0 ms] 8.18/2.96 (24) QTRS 8.18/2.96 (25) QTRSRRRProof [EQUIVALENT, 1 ms] 8.18/2.96 (26) QTRS 8.18/2.96 (27) RisEmptyProof [EQUIVALENT, 0 ms] 8.18/2.96 (28) YES 8.18/2.96 8.18/2.96 8.18/2.96 ---------------------------------------- 8.18/2.96 8.18/2.96 (0) 8.18/2.96 Obligation: 8.18/2.96 Q restricted rewrite system: 8.18/2.96 The TRS R consists of the following rules: 8.18/2.96 8.18/2.96 a__zeros -> cons(0, zeros) 8.18/2.96 a__U11(tt) -> tt 8.18/2.96 a__U21(tt) -> tt 8.18/2.96 a__U31(tt) -> tt 8.18/2.96 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.96 a__U42(tt) -> tt 8.18/2.96 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.96 a__U52(tt) -> tt 8.18/2.96 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.96 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.96 a__isNat(0) -> tt 8.18/2.96 a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) 8.18/2.96 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.96 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.96 a__isNatIList(zeros) -> tt 8.18/2.96 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.96 a__isNatList(nil) -> tt 8.18/2.96 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.96 a__length(nil) -> 0 8.18/2.96 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.96 mark(zeros) -> a__zeros 8.18/2.96 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.96 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.96 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.96 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.96 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.96 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.96 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.96 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.96 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.96 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.96 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.96 mark(isNat(X)) -> a__isNat(X) 8.18/2.96 mark(length(X)) -> a__length(mark(X)) 8.18/2.96 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.96 mark(0) -> 0 8.18/2.96 mark(tt) -> tt 8.18/2.96 mark(s(X)) -> s(mark(X)) 8.18/2.96 mark(nil) -> nil 8.18/2.96 a__zeros -> zeros 8.18/2.96 a__U11(X) -> U11(X) 8.18/2.96 a__U21(X) -> U21(X) 8.18/2.96 a__U31(X) -> U31(X) 8.18/2.96 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.96 a__U42(X) -> U42(X) 8.18/2.96 a__isNatIList(X) -> isNatIList(X) 8.18/2.96 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.96 a__U52(X) -> U52(X) 8.18/2.96 a__isNatList(X) -> isNatList(X) 8.18/2.96 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.96 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.96 a__isNat(X) -> isNat(X) 8.18/2.96 a__length(X) -> length(X) 8.18/2.96 8.18/2.96 The set Q consists of the following terms: 8.18/2.96 8.18/2.96 a__zeros 8.18/2.96 a__isNatIList(x0) 8.18/2.96 mark(zeros) 8.18/2.96 mark(U11(x0)) 8.18/2.96 mark(U21(x0)) 8.18/2.96 mark(U31(x0)) 8.18/2.96 mark(U41(x0, x1)) 8.18/2.96 mark(U42(x0)) 8.18/2.96 mark(isNatIList(x0)) 8.18/2.96 mark(U51(x0, x1)) 8.18/2.96 mark(U52(x0)) 8.18/2.96 mark(isNatList(x0)) 8.18/2.96 mark(U61(x0, x1, x2)) 8.18/2.96 mark(U62(x0, x1)) 8.18/2.96 mark(isNat(x0)) 8.18/2.96 mark(length(x0)) 8.18/2.96 mark(cons(x0, x1)) 8.18/2.96 mark(0) 8.18/2.96 mark(tt) 8.18/2.96 mark(s(x0)) 8.18/2.96 mark(nil) 8.18/2.96 a__U11(x0) 8.18/2.96 a__U21(x0) 8.18/2.96 a__U31(x0) 8.18/2.96 a__U41(x0, x1) 8.18/2.96 a__U42(x0) 8.18/2.96 a__U51(x0, x1) 8.18/2.96 a__U52(x0) 8.18/2.96 a__isNatList(x0) 8.18/2.96 a__U61(x0, x1, x2) 8.18/2.96 a__U62(x0, x1) 8.18/2.96 a__isNat(x0) 8.18/2.96 a__length(x0) 8.18/2.96 8.18/2.96 8.18/2.96 ---------------------------------------- 8.18/2.96 8.18/2.96 (1) QTRSRRRProof (EQUIVALENT) 8.18/2.96 Used ordering: 8.18/2.96 Polynomial interpretation [POLO]: 8.18/2.96 8.18/2.96 POL(0) = 0 8.18/2.96 POL(U11(x_1)) = x_1 8.18/2.96 POL(U21(x_1)) = x_1 8.18/2.96 POL(U31(x_1)) = x_1 8.18/2.96 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(U42(x_1)) = 2*x_1 8.18/2.96 POL(U51(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(U52(x_1)) = 2*x_1 8.18/2.96 POL(U61(x_1, x_2, x_3)) = x_1 + x_2 + x_3 8.18/2.96 POL(U62(x_1, x_2)) = x_1 + x_2 8.18/2.96 POL(a__U11(x_1)) = x_1 8.18/2.96 POL(a__U21(x_1)) = x_1 8.18/2.96 POL(a__U31(x_1)) = x_1 8.18/2.96 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(a__U42(x_1)) = 2*x_1 8.18/2.96 POL(a__U51(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(a__U52(x_1)) = 2*x_1 8.18/2.96 POL(a__U61(x_1, x_2, x_3)) = x_1 + x_2 + x_3 8.18/2.96 POL(a__U62(x_1, x_2)) = x_1 + x_2 8.18/2.96 POL(a__isNat(x_1)) = x_1 8.18/2.96 POL(a__isNatIList(x_1)) = x_1 8.18/2.96 POL(a__isNatList(x_1)) = x_1 8.18/2.96 POL(a__length(x_1)) = x_1 8.18/2.96 POL(a__zeros) = 0 8.18/2.96 POL(cons(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(isNat(x_1)) = x_1 8.18/2.96 POL(isNatIList(x_1)) = x_1 8.18/2.96 POL(isNatList(x_1)) = x_1 8.18/2.96 POL(length(x_1)) = x_1 8.18/2.96 POL(mark(x_1)) = x_1 8.18/2.96 POL(nil) = 1 8.18/2.96 POL(s(x_1)) = x_1 8.18/2.96 POL(tt) = 0 8.18/2.96 POL(zeros) = 0 8.18/2.96 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.96 8.18/2.96 a__isNatList(nil) -> tt 8.18/2.96 a__length(nil) -> 0 8.18/2.96 8.18/2.96 8.18/2.96 8.18/2.96 8.18/2.96 ---------------------------------------- 8.18/2.96 8.18/2.96 (2) 8.18/2.96 Obligation: 8.18/2.96 Q restricted rewrite system: 8.18/2.96 The TRS R consists of the following rules: 8.18/2.96 8.18/2.96 a__zeros -> cons(0, zeros) 8.18/2.96 a__U11(tt) -> tt 8.18/2.96 a__U21(tt) -> tt 8.18/2.96 a__U31(tt) -> tt 8.18/2.96 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.96 a__U42(tt) -> tt 8.18/2.96 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.96 a__U52(tt) -> tt 8.18/2.96 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.96 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.96 a__isNat(0) -> tt 8.18/2.96 a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) 8.18/2.96 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.96 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.96 a__isNatIList(zeros) -> tt 8.18/2.96 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.96 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.96 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.96 mark(zeros) -> a__zeros 8.18/2.96 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.96 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.96 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.96 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.96 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.96 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.96 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.96 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.96 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.96 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.96 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.96 mark(isNat(X)) -> a__isNat(X) 8.18/2.96 mark(length(X)) -> a__length(mark(X)) 8.18/2.96 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.96 mark(0) -> 0 8.18/2.96 mark(tt) -> tt 8.18/2.96 mark(s(X)) -> s(mark(X)) 8.18/2.96 mark(nil) -> nil 8.18/2.96 a__zeros -> zeros 8.18/2.96 a__U11(X) -> U11(X) 8.18/2.96 a__U21(X) -> U21(X) 8.18/2.96 a__U31(X) -> U31(X) 8.18/2.96 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.96 a__U42(X) -> U42(X) 8.18/2.96 a__isNatIList(X) -> isNatIList(X) 8.18/2.96 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.96 a__U52(X) -> U52(X) 8.18/2.96 a__isNatList(X) -> isNatList(X) 8.18/2.96 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.96 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.96 a__isNat(X) -> isNat(X) 8.18/2.96 a__length(X) -> length(X) 8.18/2.96 8.18/2.96 The set Q consists of the following terms: 8.18/2.96 8.18/2.96 a__zeros 8.18/2.96 a__isNatIList(x0) 8.18/2.96 mark(zeros) 8.18/2.96 mark(U11(x0)) 8.18/2.96 mark(U21(x0)) 8.18/2.96 mark(U31(x0)) 8.18/2.96 mark(U41(x0, x1)) 8.18/2.96 mark(U42(x0)) 8.18/2.96 mark(isNatIList(x0)) 8.18/2.96 mark(U51(x0, x1)) 8.18/2.96 mark(U52(x0)) 8.18/2.96 mark(isNatList(x0)) 8.18/2.96 mark(U61(x0, x1, x2)) 8.18/2.96 mark(U62(x0, x1)) 8.18/2.96 mark(isNat(x0)) 8.18/2.96 mark(length(x0)) 8.18/2.96 mark(cons(x0, x1)) 8.18/2.96 mark(0) 8.18/2.96 mark(tt) 8.18/2.96 mark(s(x0)) 8.18/2.96 mark(nil) 8.18/2.96 a__U11(x0) 8.18/2.96 a__U21(x0) 8.18/2.96 a__U31(x0) 8.18/2.96 a__U41(x0, x1) 8.18/2.96 a__U42(x0) 8.18/2.96 a__U51(x0, x1) 8.18/2.96 a__U52(x0) 8.18/2.96 a__isNatList(x0) 8.18/2.96 a__U61(x0, x1, x2) 8.18/2.96 a__U62(x0, x1) 8.18/2.96 a__isNat(x0) 8.18/2.96 a__length(x0) 8.18/2.96 8.18/2.96 8.18/2.96 ---------------------------------------- 8.18/2.96 8.18/2.96 (3) QTRSRRRProof (EQUIVALENT) 8.18/2.96 Used ordering: 8.18/2.96 Polynomial interpretation [POLO]: 8.18/2.96 8.18/2.96 POL(0) = 0 8.18/2.96 POL(U11(x_1)) = 2*x_1 8.18/2.96 POL(U21(x_1)) = x_1 8.18/2.96 POL(U31(x_1)) = x_1 8.18/2.96 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(U42(x_1)) = 2*x_1 8.18/2.96 POL(U51(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(U52(x_1)) = 2*x_1 8.18/2.96 POL(U61(x_1, x_2, x_3)) = 1 + 2*x_1 + 2*x_2 + 2*x_3 8.18/2.96 POL(U62(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.96 POL(a__U11(x_1)) = 2*x_1 8.18/2.96 POL(a__U21(x_1)) = x_1 8.18/2.96 POL(a__U31(x_1)) = x_1 8.18/2.96 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(a__U42(x_1)) = 2*x_1 8.18/2.96 POL(a__U51(x_1, x_2)) = x_1 + 2*x_2 8.18/2.96 POL(a__U52(x_1)) = 2*x_1 8.18/2.96 POL(a__U61(x_1, x_2, x_3)) = 1 + 2*x_1 + 2*x_2 + 2*x_3 8.18/2.96 POL(a__U62(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.96 POL(a__isNat(x_1)) = 2*x_1 8.18/2.96 POL(a__isNatIList(x_1)) = x_1 8.18/2.96 POL(a__isNatList(x_1)) = x_1 8.18/2.96 POL(a__length(x_1)) = 1 + 2*x_1 8.18/2.96 POL(a__zeros) = 0 8.18/2.96 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.96 POL(isNat(x_1)) = 2*x_1 8.18/2.96 POL(isNatIList(x_1)) = x_1 8.18/2.96 POL(isNatList(x_1)) = x_1 8.18/2.96 POL(length(x_1)) = 1 + 2*x_1 8.18/2.96 POL(mark(x_1)) = x_1 8.18/2.96 POL(nil) = 0 8.18/2.96 POL(s(x_1)) = x_1 8.18/2.96 POL(tt) = 0 8.18/2.96 POL(zeros) = 0 8.18/2.96 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.96 8.18/2.96 a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) 8.18/2.96 8.18/2.96 8.18/2.96 8.18/2.96 8.18/2.96 ---------------------------------------- 8.18/2.96 8.18/2.96 (4) 8.18/2.96 Obligation: 8.18/2.96 Q restricted rewrite system: 8.18/2.96 The TRS R consists of the following rules: 8.18/2.96 8.18/2.96 a__zeros -> cons(0, zeros) 8.18/2.96 a__U11(tt) -> tt 8.18/2.96 a__U21(tt) -> tt 8.18/2.96 a__U31(tt) -> tt 8.18/2.96 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.96 a__U42(tt) -> tt 8.18/2.96 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.96 a__U52(tt) -> tt 8.18/2.96 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.96 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.96 a__isNat(0) -> tt 8.18/2.96 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.96 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.96 a__isNatIList(zeros) -> tt 8.18/2.96 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.96 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.96 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.96 mark(zeros) -> a__zeros 8.18/2.96 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.96 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.96 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.96 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.96 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.96 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.96 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.96 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.96 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.96 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.96 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.96 mark(isNat(X)) -> a__isNat(X) 8.18/2.96 mark(length(X)) -> a__length(mark(X)) 8.18/2.96 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.96 mark(0) -> 0 8.18/2.96 mark(tt) -> tt 8.18/2.96 mark(s(X)) -> s(mark(X)) 8.18/2.96 mark(nil) -> nil 8.18/2.96 a__zeros -> zeros 8.18/2.96 a__U11(X) -> U11(X) 8.18/2.96 a__U21(X) -> U21(X) 8.18/2.96 a__U31(X) -> U31(X) 8.18/2.96 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.96 a__U42(X) -> U42(X) 8.18/2.96 a__isNatIList(X) -> isNatIList(X) 8.18/2.96 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.96 a__U52(X) -> U52(X) 8.18/2.96 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (5) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 2*x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = 1 + x_1 8.18/2.97 POL(U41(x_1, x_2)) = 1 + 2*x_1 + x_2 8.18/2.97 POL(U42(x_1)) = x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = 2*x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = 2*x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = 1 + x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = 1 + 2*x_1 + x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = 2*x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = x_1 8.18/2.97 POL(a__isNatIList(x_1)) = 1 + x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatIList(x_1)) = 1 + x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(nil) = 0 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__U31(tt) -> tt 8.18/2.97 a__isNatIList(zeros) -> tt 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (6) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U11(tt) -> tt 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.97 a__U42(tt) -> tt 8.18/2.97 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(0) -> tt 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.97 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.97 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(isNat(X)) -> a__isNat(X) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(0) -> 0 8.18/2.97 mark(tt) -> tt 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 mark(nil) -> nil 8.18/2.97 a__zeros -> zeros 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (7) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 1 + x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = 2*x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = 1 + x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = 2*x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = x_1 8.18/2.97 POL(a__isNatIList(x_1)) = x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatIList(x_1)) = x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(nil) = 0 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__U11(tt) -> tt 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (8) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.97 a__U42(tt) -> tt 8.18/2.97 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(0) -> tt 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.97 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.97 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(isNat(X)) -> a__isNat(X) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(0) -> 0 8.18/2.97 mark(tt) -> tt 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 mark(nil) -> nil 8.18/2.97 a__zeros -> zeros 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (9) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = x_1 8.18/2.97 POL(a__isNatIList(x_1)) = 1 + x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatIList(x_1)) = 1 + x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(nil) = 0 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__isNatIList(V) -> a__U31(a__isNatList(V)) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (10) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.97 a__U42(tt) -> tt 8.18/2.97 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(0) -> tt 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.97 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(isNat(X)) -> a__isNat(X) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(0) -> 0 8.18/2.97 mark(tt) -> tt 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 mark(nil) -> nil 8.18/2.97 a__zeros -> zeros 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (11) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = x_1 8.18/2.97 POL(U51(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.18/2.97 POL(U62(x_1, x_2)) = 1 + x_1 + x_2 8.18/2.97 POL(a__U11(x_1)) = x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 1 + x_1 + x_2 8.18/2.97 POL(a__isNat(x_1)) = x_1 8.18/2.97 POL(a__isNatIList(x_1)) = x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = x_1 8.18/2.97 POL(a__zeros) = 1 8.18/2.97 POL(cons(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatIList(x_1)) = x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = x_1 8.18/2.97 POL(mark(x_1)) = 1 + x_1 8.18/2.97 POL(nil) = 1 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) 8.18/2.97 a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) 8.18/2.97 mark(isNatIList(X)) -> a__isNatIList(X) 8.18/2.97 mark(isNatList(X)) -> a__isNatList(X) 8.18/2.97 mark(isNat(X)) -> a__isNat(X) 8.18/2.97 mark(0) -> 0 8.18/2.97 mark(tt) -> tt 8.18/2.97 mark(nil) -> nil 8.18/2.97 a__zeros -> zeros 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (12) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.97 a__U42(tt) -> tt 8.18/2.97 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(0) -> tt 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (13) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = 2*x_1 8.18/2.97 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = 2*x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 1 + x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = 2*x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = 2*x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 1 + x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = 2 + 2*x_1 8.18/2.97 POL(a__isNatIList(x_1)) = x_1 8.18/2.97 POL(a__isNatList(x_1)) = 2*x_1 8.18/2.97 POL(a__length(x_1)) = 1 + 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = 2 + x_1 8.18/2.97 POL(isNatIList(x_1)) = x_1 8.18/2.97 POL(isNatList(x_1)) = 2*x_1 8.18/2.97 POL(length(x_1)) = 1 + 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 1 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) 8.18/2.97 a__U42(tt) -> tt 8.18/2.97 a__U51(tt, V2) -> a__U52(a__isNatList(V2)) 8.18/2.97 a__isNat(0) -> tt 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (14) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (15) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 2*x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = 2*x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = x_1 8.18/2.97 POL(a__isNatIList(x_1)) = 1 + 2*x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatIList(x_1)) = 2*x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__isNatIList(X) -> isNatIList(X) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (16) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (17) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 2*x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = 2*x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = 1 + 2*x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 1 + 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = 2*x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = 2*x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = 1 + 2*x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 1 + 2*x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(a__isNat(x_1)) = 1 + x_1 8.18/2.97 POL(a__isNatList(x_1)) = x_1 8.18/2.97 POL(a__length(x_1)) = 2 + 2*x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 8.18/2.97 POL(isNat(x_1)) = x_1 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = 2 + 2*x_1 8.18/2.97 POL(mark(x_1)) = x_1 8.18/2.97 POL(s(x_1)) = 1 + x_1 8.18/2.97 POL(tt) = 2 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__U52(tt) -> tt 8.18/2.97 a__U61(tt, L, N) -> a__U62(a__isNat(N), L) 8.18/2.97 a__U62(tt, L) -> s(a__length(mark(L))) 8.18/2.97 a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 8.18/2.97 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) 8.18/2.97 a__isNat(X) -> isNat(X) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (18) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (19) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = x_1 8.18/2.97 POL(U21(x_1)) = x_1 8.18/2.97 POL(U31(x_1)) = x_1 8.18/2.97 POL(U41(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(U42(x_1)) = x_1 8.18/2.97 POL(U51(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(U52(x_1)) = x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = x_1 8.18/2.97 POL(a__U21(x_1)) = x_1 8.18/2.97 POL(a__U31(x_1)) = x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = x_1 + 2*x_2 8.18/2.97 POL(a__isNatList(x_1)) = 1 + x_1 8.18/2.97 POL(a__length(x_1)) = x_1 8.18/2.97 POL(a__zeros) = 0 8.18/2.97 POL(cons(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(isNatList(x_1)) = x_1 8.18/2.97 POL(length(x_1)) = x_1 8.18/2.97 POL(mark(x_1)) = 2*x_1 8.18/2.97 POL(s(x_1)) = x_1 8.18/2.97 POL(tt) = 0 8.18/2.97 POL(zeros) = 0 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__isNatList(X) -> isNatList(X) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (20) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (21) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 1 + 2*x_1 8.18/2.97 POL(U21(x_1)) = 1 + 2*x_1 8.18/2.97 POL(U31(x_1)) = 1 + x_1 8.18/2.97 POL(U41(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = 1 + x_1 8.18/2.97 POL(U51(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = 1 + x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 1 + x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(a__U11(x_1)) = 2 + 2*x_1 8.18/2.97 POL(a__U21(x_1)) = 2 + 2*x_1 8.18/2.97 POL(a__U31(x_1)) = 2 + x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = 2 + x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = 2 + x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 2 + x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = 2 + x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 2 + x_1 + 2*x_2 8.18/2.97 POL(a__length(x_1)) = 2 + 2*x_1 8.18/2.97 POL(a__zeros) = 2 8.18/2.97 POL(cons(x_1, x_2)) = 1 + 2*x_1 + x_2 8.18/2.97 POL(length(x_1)) = 1 + 2*x_1 8.18/2.97 POL(mark(x_1)) = 2*x_1 8.18/2.97 POL(s(x_1)) = 1 + 2*x_1 8.18/2.97 POL(tt) = 1 8.18/2.97 POL(zeros) = 1 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__U21(tt) -> tt 8.18/2.97 mark(cons(X1, X2)) -> cons(mark(X1), X2) 8.18/2.97 mark(s(X)) -> s(mark(X)) 8.18/2.97 a__U11(X) -> U11(X) 8.18/2.97 a__U21(X) -> U21(X) 8.18/2.97 a__U31(X) -> U31(X) 8.18/2.97 a__U41(X1, X2) -> U41(X1, X2) 8.18/2.97 a__U42(X) -> U42(X) 8.18/2.97 a__U51(X1, X2) -> U51(X1, X2) 8.18/2.97 a__U52(X) -> U52(X) 8.18/2.97 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 8.18/2.97 a__U62(X1, X2) -> U62(X1, X2) 8.18/2.97 a__length(X) -> length(X) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (22) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (23) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Polynomial interpretation [POLO]: 8.18/2.97 8.18/2.97 POL(0) = 0 8.18/2.97 POL(U11(x_1)) = 2*x_1 8.18/2.97 POL(U21(x_1)) = 2 + 2*x_1 8.18/2.97 POL(U31(x_1)) = 2 + 2*x_1 8.18/2.97 POL(U41(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 8.18/2.97 POL(U42(x_1)) = 1 + 2*x_1 8.18/2.97 POL(U51(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 8.18/2.97 POL(U52(x_1)) = 2 + 2*x_1 8.18/2.97 POL(U61(x_1, x_2, x_3)) = 1 + 2*x_1 + x_2 + 2*x_3 8.18/2.97 POL(U62(x_1, x_2)) = 2 + 2*x_1 + x_2 8.18/2.97 POL(a__U11(x_1)) = x_1 8.18/2.97 POL(a__U21(x_1)) = 1 + x_1 8.18/2.97 POL(a__U31(x_1)) = 1 + x_1 8.18/2.97 POL(a__U41(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(a__U42(x_1)) = x_1 8.18/2.97 POL(a__U51(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(a__U52(x_1)) = 1 + x_1 8.18/2.97 POL(a__U61(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 8.18/2.97 POL(a__U62(x_1, x_2)) = 1 + x_1 + 2*x_2 8.18/2.97 POL(a__length(x_1)) = 2*x_1 8.18/2.97 POL(a__zeros) = 2 8.18/2.97 POL(cons(x_1, x_2)) = x_1 + x_2 8.18/2.97 POL(length(x_1)) = 2 + 2*x_1 8.18/2.97 POL(mark(x_1)) = 1 + 2*x_1 8.18/2.97 POL(zeros) = 2 8.18/2.97 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 mark(zeros) -> a__zeros 8.18/2.97 mark(U21(X)) -> a__U21(mark(X)) 8.18/2.97 mark(U31(X)) -> a__U31(mark(X)) 8.18/2.97 mark(U41(X1, X2)) -> a__U41(mark(X1), X2) 8.18/2.97 mark(U42(X)) -> a__U42(mark(X)) 8.18/2.97 mark(U51(X1, X2)) -> a__U51(mark(X1), X2) 8.18/2.97 mark(U52(X)) -> a__U52(mark(X)) 8.18/2.97 mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) 8.18/2.97 mark(U62(X1, X2)) -> a__U62(mark(X1), X2) 8.18/2.97 mark(length(X)) -> a__length(mark(X)) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (24) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 The TRS R consists of the following rules: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (25) QTRSRRRProof (EQUIVALENT) 8.18/2.97 Used ordering: 8.18/2.97 Knuth-Bendix order [KBO] with precedence:mark_1 > a__U11_1 > U11_1 > zeros > 0 > a__zeros > cons_2 8.18/2.97 8.18/2.97 and weight map: 8.18/2.97 8.18/2.97 a__zeros=2 8.18/2.97 0=1 8.18/2.97 zeros=1 8.18/2.97 mark_1=2 8.18/2.97 U11_1=1 8.18/2.97 a__U11_1=1 8.18/2.97 cons_2=0 8.18/2.97 8.18/2.97 The variable weight is 1With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.18/2.97 8.18/2.97 a__zeros -> cons(0, zeros) 8.18/2.97 mark(U11(X)) -> a__U11(mark(X)) 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (26) 8.18/2.97 Obligation: 8.18/2.97 Q restricted rewrite system: 8.18/2.97 R is empty. 8.18/2.97 The set Q consists of the following terms: 8.18/2.97 8.18/2.97 a__zeros 8.18/2.97 a__isNatIList(x0) 8.18/2.97 mark(zeros) 8.18/2.97 mark(U11(x0)) 8.18/2.97 mark(U21(x0)) 8.18/2.97 mark(U31(x0)) 8.18/2.97 mark(U41(x0, x1)) 8.18/2.97 mark(U42(x0)) 8.18/2.97 mark(isNatIList(x0)) 8.18/2.97 mark(U51(x0, x1)) 8.18/2.97 mark(U52(x0)) 8.18/2.97 mark(isNatList(x0)) 8.18/2.97 mark(U61(x0, x1, x2)) 8.18/2.97 mark(U62(x0, x1)) 8.18/2.97 mark(isNat(x0)) 8.18/2.97 mark(length(x0)) 8.18/2.97 mark(cons(x0, x1)) 8.18/2.97 mark(0) 8.18/2.97 mark(tt) 8.18/2.97 mark(s(x0)) 8.18/2.97 mark(nil) 8.18/2.97 a__U11(x0) 8.18/2.97 a__U21(x0) 8.18/2.97 a__U31(x0) 8.18/2.97 a__U41(x0, x1) 8.18/2.97 a__U42(x0) 8.18/2.97 a__U51(x0, x1) 8.18/2.97 a__U52(x0) 8.18/2.97 a__isNatList(x0) 8.18/2.97 a__U61(x0, x1, x2) 8.18/2.97 a__U62(x0, x1) 8.18/2.97 a__isNat(x0) 8.18/2.97 a__length(x0) 8.18/2.97 8.18/2.97 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (27) RisEmptyProof (EQUIVALENT) 8.18/2.97 The TRS R is empty. Hence, termination is trivially proven. 8.18/2.97 ---------------------------------------- 8.18/2.97 8.18/2.97 (28) 8.18/2.97 YES 8.48/3.07 EOF