/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: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished Termination of the given CSR could be proven: (0) CSR (1) CSRRRRProof [EQUIVALENT, 70 ms] (2) CSR (3) CSRRRRProof [EQUIVALENT, 22 ms] (4) CSR (5) CSRRRRProof [EQUIVALENT, 0 ms] (6) CSR (7) CSRInnermostProof [EQUIVALENT, 0 ms] (8) CSR (9) CSDependencyPairsProof [EQUIVALENT, 0 ms] (10) QCSDP (11) QCSDependencyGraphProof [EQUIVALENT, 0 ms] (12) AND (13) QCSDP (14) QCSDPSubtermProof [EQUIVALENT, 0 ms] (15) QCSDP (16) PIsEmptyProof [EQUIVALENT, 0 ms] (17) YES (18) QCSDP (19) QCSUsableRulesProof [EQUIVALENT, 0 ms] (20) QCSDP (21) QCSDPMuMonotonicPoloProof [EQUIVALENT, 0 ms] (22) QCSDP (23) PIsEmptyProof [EQUIVALENT, 0 ms] (24) YES (25) QCSDP (26) QCSDPReductionPairProof [EQUIVALENT, 15 ms] (27) QCSDP (28) QCSDependencyGraphProof [EQUIVALENT, 0 ms] (29) TRUE ---------------------------------------- (0) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(V) -> isNatList(V) isNatIList(zeros) -> tt isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(nil) -> tt isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(nil) -> 0 length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set nil: empty set ---------------------------------------- (1) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(V) -> isNatList(V) isNatIList(zeros) -> tt isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(nil) -> tt isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(nil) -> 0 length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set nil: empty set Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(U11(x_1, x_2)) = x_1 + 2*x_2 POL(and(x_1, x_2)) = x_1 + 2*x_2 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 POL(isNat(x_1)) = x_1 POL(isNatIList(x_1)) = 2*x_1 POL(isNatList(x_1)) = 2*x_1 POL(length(x_1)) = 2*x_1 POL(nil) = 2 POL(s(x_1)) = x_1 POL(tt) = 0 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: isNatList(nil) -> tt length(nil) -> 0 ---------------------------------------- (2) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(V) -> isNatList(V) isNatIList(zeros) -> tt isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set ---------------------------------------- (3) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(V) -> isNatList(V) isNatIList(zeros) -> tt isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(U11(x_1, x_2)) = x_1 + 2*x_2 POL(and(x_1, x_2)) = x_1 + x_2 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 2 + x_1 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 2*x_1 POL(s(x_1)) = x_1 POL(tt) = 0 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: isNatIList(V) -> isNatList(V) isNatIList(zeros) -> tt ---------------------------------------- (4) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set ---------------------------------------- (5) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(length(V1)) -> isNatList(V1) isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(U11(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 POL(cons(x_1, x_2)) = 2*x_1 + 2*x_2 POL(isNat(x_1)) = x_1 POL(isNatIList(x_1)) = x_1 POL(isNatList(x_1)) = x_1 POL(length(x_1)) = 1 + 2*x_1 POL(s(x_1)) = x_1 POL(tt) = 0 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: isNat(length(V1)) -> isNatList(V1) ---------------------------------------- (6) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set ---------------------------------------- (7) CSRInnermostProof (EQUIVALENT) The CSR is orthogonal. By [CS_Inn] we can switch to innermost. ---------------------------------------- (8) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The replacement map contains the following entries: zeros: empty set cons: {1} 0: empty set U11: {1} tt: empty set s: {1} length: {1} and: {1} isNat: empty set isNatList: empty set isNatIList: empty set Innermost Strategy. ---------------------------------------- (9) CSDependencyPairsProof (EQUIVALENT) Using Improved CS-DPs [LPAR08] we result in the following initial Q-CSDP problem. ---------------------------------------- (10) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1, LENGTH_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2, U11'_2, AND_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1, ISNAT_1, ISNATILIST_1, ISNATLIST_1, U_1} are not replacing on any position. The ordinary context-sensitive dependency pairs DP_o are: U11'(tt, L) -> LENGTH(L) ISNAT(s(V1)) -> ISNAT(V1) ISNATILIST(cons(V1, V2)) -> AND(isNat(V1), isNatIList(V2)) ISNATILIST(cons(V1, V2)) -> ISNAT(V1) ISNATLIST(cons(V1, V2)) -> AND(isNat(V1), isNatList(V2)) ISNATLIST(cons(V1, V2)) -> ISNAT(V1) LENGTH(cons(N, L)) -> U11'(and(isNatList(L), isNat(N)), L) LENGTH(cons(N, L)) -> AND(isNatList(L), isNat(N)) LENGTH(cons(N, L)) -> ISNATLIST(L) The collapsing dependency pairs are DP_c: U11'(tt, L) -> L AND(tt, X) -> X The hidden terms of R are: zeros isNatIList(x0) isNatList(x0) isNat(x0) Every hiding context is built from:none Hence, the new unhiding pairs DP_u are : U11'(tt, L) -> U(L) AND(tt, X) -> U(X) U(zeros) -> ZEROS U(isNatIList(x0)) -> ISNATILIST(x0) U(isNatList(x0)) -> ISNATLIST(x0) U(isNat(x0)) -> ISNAT(x0) The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (11) QCSDependencyGraphProof (EQUIVALENT) The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 3 SCCs with 7 less nodes. ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1, ISNAT_1} are not replacing on any position. The TRS P consists of the following rules: ISNAT(s(V1)) -> ISNAT(V1) The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (14) QCSDPSubtermProof (EQUIVALENT) We use the subterm processor [DA_EMMES]. The following pairs can be oriented strictly and are deleted. ISNAT(s(V1)) -> ISNAT(V1) The remaining pairs can at least be oriented weakly. none Used ordering: Combined order from the following AFS and order. ISNAT(x1) = x1 Subterm Order ---------------------------------------- (15) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1} are not replacing on any position. The TRS P consists of the following rules: none The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (16) PIsEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. ---------------------------------------- (17) YES ---------------------------------------- (18) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2, AND_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1, ISNATILIST_1, U_1, ISNATLIST_1} are not replacing on any position. The TRS P consists of the following rules: ISNATILIST(cons(V1, V2)) -> AND(isNat(V1), isNatIList(V2)) AND(tt, X) -> U(X) U(isNatIList(x0)) -> ISNATILIST(x0) U(isNatList(x0)) -> ISNATLIST(x0) ISNATLIST(cons(V1, V2)) -> AND(isNat(V1), isNatList(V2)) The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (19) QCSUsableRulesProof (EQUIVALENT) The following rules are not useable [DA_EMMES] and can be deleted: zeros -> cons(0, zeros) U11(tt, x0) -> s(length(x0)) and(tt, x0) -> x0 isNatIList(cons(x0, x1)) -> and(isNat(x0), isNatIList(x1)) isNatList(cons(x0, x1)) -> and(isNat(x0), isNatList(x1)) length(cons(x0, x1)) -> U11(and(isNatList(x1), isNat(x0)), x1) ---------------------------------------- (20) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1} are replacing on all positions. For all symbols f in {cons_2, AND_2, U11_2, and_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1, ISNATILIST_1, U_1, ISNATLIST_1} are not replacing on any position. The TRS P consists of the following rules: ISNATILIST(cons(V1, V2)) -> AND(isNat(V1), isNatIList(V2)) AND(tt, X) -> U(X) U(isNatIList(x0)) -> ISNATILIST(x0) U(isNatList(x0)) -> ISNATLIST(x0) ISNATLIST(cons(V1, V2)) -> AND(isNat(V1), isNatList(V2)) The TRS R consists of the following rules: isNat(0) -> tt isNat(s(V1)) -> isNat(V1) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (21) QCSDPMuMonotonicPoloProof (EQUIVALENT) By using the following mu-monotonic polynomial ordering [POLO], at least one Dependency Pair or term rewrite system rule of this Q-CSDP problem can be strictly oriented and thus deleted. Strictly oriented dependency pairs: ISNATILIST(cons(V1, V2)) -> AND(isNat(V1), isNatIList(V2)) AND(tt, X) -> U(X) U(isNatIList(x0)) -> ISNATILIST(x0) U(isNatList(x0)) -> ISNATLIST(x0) ISNATLIST(cons(V1, V2)) -> AND(isNat(V1), isNatList(V2)) Strictly oriented rules of the TRS R: isNat(0) -> tt isNat(s(V1)) -> isNat(V1) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 1 POL(AND(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(ISNATILIST(x_1)) = 1 + 2*x_1 POL(ISNATLIST(x_1)) = 1 + 2*x_1 POL(U(x_1)) = 2 + 2*x_1 POL(cons(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(isNat(x_1)) = 2*x_1 POL(isNatIList(x_1)) = 2*x_1 POL(isNatList(x_1)) = 2*x_1 POL(s(x_1)) = 1 + 2*x_1 POL(tt) = 1 ---------------------------------------- (22) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1} are replacing on all positions. For all symbols f in {U11_2, and_2, cons_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1} are not replacing on any position. The TRS P consists of the following rules: none R is empty. The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (23) PIsEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. ---------------------------------------- (24) YES ---------------------------------------- (25) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1, LENGTH_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2, U11'_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1} are not replacing on any position. The TRS P consists of the following rules: LENGTH(cons(N, L)) -> U11'(and(isNatList(L), isNat(N)), L) U11'(tt, L) -> LENGTH(L) The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (26) QCSDPReductionPairProof (EQUIVALENT) Using the order Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( and_2(x_1, x_2) ) = max{0, x_1 + x_2 - 1} POL( tt ) = 1 POL( isNatList_1(x_1) ) = 0 POL( cons_2(x_1, x_2) ) = max{0, -1} POL( isNat_1(x_1) ) = 1 POL( 0 ) = 0 POL( s_1(x_1) ) = x_1 + 2 POL( zeros ) = 0 POL( isNatIList_1(x_1) ) = 1 POL( LENGTH_1(x_1) ) = 0 POL( U11'_2(x_1, x_2) ) = max{0, 2x_1 - 1} the following usable rules and(tt, X) -> X isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) isNat(0) -> tt isNat(s(V1)) -> isNat(V1) zeros -> cons(0, zeros) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) could all be oriented weakly. Furthermore, the pairs U11'(tt, L) -> LENGTH(L) could be oriented strictly and thus removed by the CS-Reduction Pair Processor [LPAR08,DA_EMMES]. ---------------------------------------- (27) Obligation: Q-restricted context-sensitive dependency pair problem: The symbols in {s_1, length_1, LENGTH_1} are replacing on all positions. For all symbols f in {cons_2, U11_2, and_2, U11'_2} we have mu(f) = {1}. The symbols in {isNat_1, isNatIList_1, isNatList_1} are not replacing on any position. The TRS P consists of the following rules: LENGTH(cons(N, L)) -> U11'(and(isNatList(L), isNat(N)), L) The TRS R consists of the following rules: zeros -> cons(0, zeros) U11(tt, L) -> s(length(L)) and(tt, X) -> X isNat(0) -> tt isNat(s(V1)) -> isNat(V1) isNatIList(cons(V1, V2)) -> and(isNat(V1), isNatIList(V2)) isNatList(cons(V1, V2)) -> and(isNat(V1), isNatList(V2)) length(cons(N, L)) -> U11(and(isNatList(L), isNat(N)), L) The set Q consists of the following terms: zeros U11(tt, x0) and(tt, x0) isNat(0) isNat(s(x0)) isNatIList(cons(x0, x1)) isNatList(cons(x0, x1)) length(cons(x0, x1)) ---------------------------------------- (28) QCSDependencyGraphProof (EQUIVALENT) The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 1 less node. ---------------------------------------- (29) TRUE