4.33/1.96 YES 4.33/1.97 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 4.33/1.97 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.33/1.97 4.33/1.97 4.33/1.97 Termination of the given ETRS could be proven: 4.33/1.97 4.33/1.97 (0) ETRS 4.33/1.97 (1) EquationalDependencyPairsProof [EQUIVALENT, 0 ms] 4.33/1.97 (2) EDP 4.33/1.97 (3) EDependencyGraphProof [EQUIVALENT, 0 ms] 4.33/1.97 (4) AND 4.33/1.97 (5) EDP 4.33/1.97 (6) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 4.33/1.97 (7) EDP 4.33/1.97 (8) PisEmptyProof [EQUIVALENT, 0 ms] 4.33/1.97 (9) YES 4.33/1.97 (10) EDP 4.33/1.97 (11) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 4.33/1.97 (12) EDP 4.33/1.97 (13) EDPPoloProof [EQUIVALENT, 0 ms] 4.33/1.97 (14) EDP 4.33/1.97 (15) PisEmptyProof [EQUIVALENT, 0 ms] 4.33/1.97 (16) YES 4.33/1.97 (17) EDP 4.33/1.97 (18) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 4.33/1.97 (19) EDP 4.33/1.97 (20) EDPPoloProof [EQUIVALENT, 0 ms] 4.33/1.97 (21) EDP 4.33/1.97 (22) PisEmptyProof [EQUIVALENT, 0 ms] 4.33/1.97 (23) YES 4.33/1.97 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (0) 4.33/1.97 Obligation: 4.33/1.97 Equational rewrite system: 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (1) EquationalDependencyPairsProof (EQUIVALENT) 4.33/1.97 Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 EQ(s(x), s(y)) -> EQ(x, y) 4.33/1.97 RM(n, add(m, x)) -> IF_RM(eq(n, m), n, add(m, x)) 4.33/1.97 RM(n, add(m, x)) -> EQ(n, m) 4.33/1.97 IF_RM(true, n, add(m, x)) -> RM(n, x) 4.33/1.97 IF_RM(false, n, add(m, x)) -> RM(n, x) 4.33/1.97 PURGE(add(n, x)) -> PURGE(rm(n, x)) 4.33/1.97 PURGE(add(n, x)) -> RM(n, x) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (2) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 EQ(s(x), s(y)) -> EQ(x, y) 4.33/1.97 RM(n, add(m, x)) -> IF_RM(eq(n, m), n, add(m, x)) 4.33/1.97 RM(n, add(m, x)) -> EQ(n, m) 4.33/1.97 IF_RM(true, n, add(m, x)) -> RM(n, x) 4.33/1.97 IF_RM(false, n, add(m, x)) -> RM(n, x) 4.33/1.97 PURGE(add(n, x)) -> PURGE(rm(n, x)) 4.33/1.97 PURGE(add(n, x)) -> RM(n, x) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (3) EDependencyGraphProof (EQUIVALENT) 4.33/1.97 The approximation of the Equational Dependency Graph [DA_STEIN] contains 3 SCCs with 2 less nodes. 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (4) 4.33/1.97 Complex Obligation (AND) 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (5) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 EQ(s(x), s(y)) -> EQ(x, y) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (6) EUsableRulesReductionPairsProof (EQUIVALENT) 4.33/1.97 By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 4.33/1.97 4.33/1.97 The following dependency pairs can be deleted: 4.33/1.97 4.33/1.97 EQ(s(x), s(y)) -> EQ(x, y) 4.33/1.97 The following rules are removed from R: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 The following equations are removed from E: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 Used ordering: POLO with Polynomial interpretation [POLO]: 4.33/1.97 4.33/1.97 POL(EQ(x_1, x_2)) = 3*x_1 + 3*x_2 4.33/1.97 POL(s(x_1)) = 3*x_1 4.33/1.97 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (7) 4.33/1.97 Obligation: 4.33/1.97 P is empty. 4.33/1.97 R is empty. 4.33/1.97 E is empty. 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (8) PisEmptyProof (EQUIVALENT) 4.33/1.97 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (9) 4.33/1.97 YES 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (10) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 IF_RM(true, n, add(m, x)) -> RM(n, x) 4.33/1.97 RM(n, add(m, x)) -> IF_RM(eq(n, m), n, add(m, x)) 4.33/1.97 IF_RM(false, n, add(m, x)) -> RM(n, x) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (11) ESharpUsableEquationsProof (EQUIVALENT) 4.33/1.97 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (12) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 IF_RM(true, n, add(m, x)) -> RM(n, x) 4.33/1.97 RM(n, add(m, x)) -> IF_RM(eq(n, m), n, add(m, x)) 4.33/1.97 IF_RM(false, n, add(m, x)) -> RM(n, x) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 E# is empty. 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (13) EDPPoloProof (EQUIVALENT) 4.33/1.97 We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. 4.33/1.97 4.33/1.97 4.33/1.97 IF_RM(true, n, add(m, x)) -> RM(n, x) 4.33/1.97 RM(n, add(m, x)) -> IF_RM(eq(n, m), n, add(m, x)) 4.33/1.97 IF_RM(false, n, add(m, x)) -> RM(n, x) 4.33/1.97 With the implicit AFS there is no usable rule of R. 4.33/1.97 4.33/1.97 4.33/1.97 There is no equation of E#. 4.33/1.97 4.33/1.97 4.33/1.97 With the implicit AFS there is no usable equation of E. 4.33/1.97 4.33/1.97 4.33/1.97 Used ordering: POLO with Polynomial interpretation [POLO]: 4.33/1.97 4.33/1.97 POL(0) = 0 4.33/1.97 POL(IF_RM(x_1, x_2, x_3)) = 3*x_2 + 2*x_3 4.33/1.97 POL(RM(x_1, x_2)) = 3 + 3*x_1 + 2*x_2 4.33/1.97 POL(add(x_1, x_2)) = 2 + x_2 4.33/1.97 POL(eq(x_1, x_2)) = 0 4.33/1.97 POL(false) = 0 4.33/1.97 POL(s(x_1)) = 0 4.33/1.97 POL(true) = 0 4.33/1.97 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (14) 4.33/1.97 Obligation: 4.33/1.97 P is empty. 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 E# is empty. 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (15) PisEmptyProof (EQUIVALENT) 4.33/1.97 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (16) 4.33/1.97 YES 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (17) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 PURGE(add(n, x)) -> PURGE(rm(n, x)) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 The set E# consists of the following equations: 4.33/1.97 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (18) ESharpUsableEquationsProof (EQUIVALENT) 4.33/1.97 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 4.33/1.97 EQ(x, y) == EQ(y, x) 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (19) 4.33/1.97 Obligation: 4.33/1.97 The TRS P consists of the following rules: 4.33/1.97 4.33/1.97 PURGE(add(n, x)) -> PURGE(rm(n, x)) 4.33/1.97 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 E# is empty. 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (20) EDPPoloProof (EQUIVALENT) 4.33/1.97 We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. 4.33/1.97 4.33/1.97 4.33/1.97 PURGE(add(n, x)) -> PURGE(rm(n, x)) 4.33/1.97 With the implicit AFS we had to orient the following set of usable rules of R non-strictly. 4.33/1.97 4.33/1.97 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 There is no equation of E#. 4.33/1.97 4.33/1.97 4.33/1.97 With the implicit AFS there is no usable equation of E. 4.33/1.97 4.33/1.97 4.33/1.97 Used ordering: POLO with Polynomial interpretation [POLO]: 4.33/1.97 4.33/1.97 POL(0) = 0 4.33/1.97 POL(PURGE(x_1)) = x_1 4.33/1.97 POL(add(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 4.33/1.97 POL(eq(x_1, x_2)) = 2*x_1 + 2*x_2 4.33/1.97 POL(false) = 0 4.33/1.97 POL(if_rm(x_1, x_2, x_3)) = 2*x_3 4.33/1.97 POL(nil) = 0 4.33/1.97 POL(rm(x_1, x_2)) = 2*x_2 4.33/1.97 POL(s(x_1)) = 2*x_1 4.33/1.97 POL(true) = 0 4.33/1.97 4.33/1.97 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (21) 4.33/1.97 Obligation: 4.33/1.97 P is empty. 4.33/1.97 The TRS R consists of the following rules: 4.33/1.97 4.33/1.97 eq(0, 0) -> true 4.33/1.97 eq(0, s(x)) -> false 4.33/1.97 eq(s(x), 0) -> false 4.33/1.97 eq(s(x), s(y)) -> eq(x, y) 4.33/1.97 rm(n, nil) -> nil 4.33/1.97 rm(n, add(m, x)) -> if_rm(eq(n, m), n, add(m, x)) 4.33/1.97 if_rm(true, n, add(m, x)) -> rm(n, x) 4.33/1.97 if_rm(false, n, add(m, x)) -> add(m, rm(n, x)) 4.33/1.97 purge(nil) -> nil 4.33/1.97 purge(add(n, x)) -> add(n, purge(rm(n, x))) 4.33/1.97 4.33/1.97 The set E consists of the following equations: 4.33/1.97 4.33/1.97 eq(x, y) == eq(y, x) 4.33/1.97 4.33/1.97 E# is empty. 4.33/1.97 We have to consider all minimal (P,E#,R,E)-chains 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (22) PisEmptyProof (EQUIVALENT) 4.33/1.97 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 4.33/1.97 ---------------------------------------- 4.33/1.97 4.33/1.97 (23) 4.33/1.97 YES 4.54/2.00 EOF