4.78/1.77 YES 4.78/1.78 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 4.78/1.78 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.78/1.78 4.78/1.78 4.78/1.78 Outermost Termination of the given OTRS could be proven: 4.78/1.78 4.78/1.78 (0) OTRS 4.78/1.78 (1) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] 4.78/1.78 (2) QTRS 4.78/1.78 (3) QTRSRRRProof [EQUIVALENT, 33 ms] 4.78/1.78 (4) QTRS 4.78/1.78 (5) QTRSRRRProof [EQUIVALENT, 16 ms] 4.78/1.78 (6) QTRS 4.78/1.78 (7) AAECC Innermost [EQUIVALENT, 0 ms] 4.78/1.78 (8) QTRS 4.78/1.78 (9) DependencyPairsProof [EQUIVALENT, 0 ms] 4.78/1.78 (10) QDP 4.78/1.78 (11) DependencyGraphProof [EQUIVALENT, 0 ms] 4.78/1.78 (12) QDP 4.78/1.78 (13) UsableRulesProof [EQUIVALENT, 0 ms] 4.78/1.78 (14) QDP 4.78/1.78 (15) QReductionProof [EQUIVALENT, 0 ms] 4.78/1.78 (16) QDP 4.78/1.78 (17) RFCMatchBoundsDPProof [EQUIVALENT, 0 ms] 4.78/1.78 (18) YES 4.78/1.78 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (0) 4.78/1.78 Obligation: 4.78/1.78 Term rewrite system R: 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 f(g(a)) -> a 4.78/1.78 f(f(x)) -> b 4.78/1.78 g(x) -> f(g(x)) 4.78/1.78 4.78/1.78 4.78/1.78 4.78/1.78 Outermost Strategy. 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (1) Raffelsieper-Zantema-Transformation (SOUND) 4.78/1.78 We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (2) 4.78/1.78 Obligation: 4.78/1.78 Q restricted rewrite system: 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(g(a))) -> up(a) 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 g_flat(up(x_1)) -> up(g(x_1)) 4.78/1.78 4.78/1.78 Q is empty. 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (3) QTRSRRRProof (EQUIVALENT) 4.78/1.78 Used ordering: 4.78/1.78 Polynomial interpretation [POLO]: 4.78/1.78 4.78/1.78 POL(a) = 0 4.78/1.78 POL(b) = 0 4.78/1.78 POL(down(x_1)) = 2 + 2*x_1 4.78/1.78 POL(f(x_1)) = x_1 4.78/1.78 POL(f_flat(x_1)) = x_1 4.78/1.78 POL(fresh_constant) = 0 4.78/1.78 POL(g(x_1)) = x_1 4.78/1.78 POL(g_flat(x_1)) = 1 + 2*x_1 4.78/1.78 POL(top(x_1)) = 2*x_1 4.78/1.78 POL(up(x_1)) = 2 + 2*x_1 4.78/1.78 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 4.78/1.78 4.78/1.78 g_flat(up(x_1)) -> up(g(x_1)) 4.78/1.78 4.78/1.78 4.78/1.78 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (4) 4.78/1.78 Obligation: 4.78/1.78 Q restricted rewrite system: 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(g(a))) -> up(a) 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 Q is empty. 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (5) QTRSRRRProof (EQUIVALENT) 4.78/1.78 Used ordering: 4.78/1.78 Polynomial interpretation [POLO]: 4.78/1.78 4.78/1.78 POL(a) = 1 4.78/1.78 POL(b) = 0 4.78/1.78 POL(down(x_1)) = 2*x_1 4.78/1.78 POL(f(x_1)) = x_1 4.78/1.78 POL(f_flat(x_1)) = x_1 4.78/1.78 POL(fresh_constant) = 0 4.78/1.78 POL(g(x_1)) = 2*x_1 4.78/1.78 POL(top(x_1)) = 2*x_1 4.78/1.78 POL(up(x_1)) = 2*x_1 4.78/1.78 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 4.78/1.78 4.78/1.78 down(f(g(a))) -> up(a) 4.78/1.78 4.78/1.78 4.78/1.78 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (6) 4.78/1.78 Obligation: 4.78/1.78 Q restricted rewrite system: 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 Q is empty. 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (7) AAECC Innermost (EQUIVALENT) 4.78/1.78 We have applied [NOC,AAECCNOC] to switch to innermost. The TRS R 1 is 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 4.78/1.78 The TRS R 2 is 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 4.78/1.78 The signature Sigma is {top_1} 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (8) 4.78/1.78 Obligation: 4.78/1.78 Q restricted rewrite system: 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 The set Q consists of the following terms: 4.78/1.78 4.78/1.78 down(f(f(x0))) 4.78/1.78 down(g(x0)) 4.78/1.78 top(up(x0)) 4.78/1.78 down(f(a)) 4.78/1.78 down(f(b)) 4.78/1.78 down(f(fresh_constant)) 4.78/1.78 down(f(g(f(x0)))) 4.78/1.78 down(f(g(g(x0)))) 4.78/1.78 down(f(g(b))) 4.78/1.78 down(f(g(fresh_constant))) 4.78/1.78 f_flat(up(x0)) 4.78/1.78 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (9) DependencyPairsProof (EQUIVALENT) 4.78/1.78 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (10) 4.78/1.78 Obligation: 4.78/1.78 Q DP problem: 4.78/1.78 The TRS P consists of the following rules: 4.78/1.78 4.78/1.78 TOP(up(x)) -> TOP(down(x)) 4.78/1.78 TOP(up(x)) -> DOWN(x) 4.78/1.78 DOWN(f(a)) -> F_FLAT(down(a)) 4.78/1.78 DOWN(f(a)) -> DOWN(a) 4.78/1.78 DOWN(f(b)) -> F_FLAT(down(b)) 4.78/1.78 DOWN(f(b)) -> DOWN(b) 4.78/1.78 DOWN(f(fresh_constant)) -> F_FLAT(down(fresh_constant)) 4.78/1.78 DOWN(f(fresh_constant)) -> DOWN(fresh_constant) 4.78/1.78 DOWN(f(g(f(y6)))) -> F_FLAT(down(g(f(y6)))) 4.78/1.78 DOWN(f(g(f(y6)))) -> DOWN(g(f(y6))) 4.78/1.78 DOWN(f(g(g(y7)))) -> F_FLAT(down(g(g(y7)))) 4.78/1.78 DOWN(f(g(g(y7)))) -> DOWN(g(g(y7))) 4.78/1.78 DOWN(f(g(b))) -> F_FLAT(down(g(b))) 4.78/1.78 DOWN(f(g(b))) -> DOWN(g(b)) 4.78/1.78 DOWN(f(g(fresh_constant))) -> F_FLAT(down(g(fresh_constant))) 4.78/1.78 DOWN(f(g(fresh_constant))) -> DOWN(g(fresh_constant)) 4.78/1.78 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 The set Q consists of the following terms: 4.78/1.78 4.78/1.78 down(f(f(x0))) 4.78/1.78 down(g(x0)) 4.78/1.78 top(up(x0)) 4.78/1.78 down(f(a)) 4.78/1.78 down(f(b)) 4.78/1.78 down(f(fresh_constant)) 4.78/1.78 down(f(g(f(x0)))) 4.78/1.78 down(f(g(g(x0)))) 4.78/1.78 down(f(g(b))) 4.78/1.78 down(f(g(fresh_constant))) 4.78/1.78 f_flat(up(x0)) 4.78/1.78 4.78/1.78 We have to consider all minimal (P,Q,R)-chains. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (11) DependencyGraphProof (EQUIVALENT) 4.78/1.78 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 15 less nodes. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (12) 4.78/1.78 Obligation: 4.78/1.78 Q DP problem: 4.78/1.78 The TRS P consists of the following rules: 4.78/1.78 4.78/1.78 TOP(up(x)) -> TOP(down(x)) 4.78/1.78 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 top(up(x)) -> top(down(x)) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 The set Q consists of the following terms: 4.78/1.78 4.78/1.78 down(f(f(x0))) 4.78/1.78 down(g(x0)) 4.78/1.78 top(up(x0)) 4.78/1.78 down(f(a)) 4.78/1.78 down(f(b)) 4.78/1.78 down(f(fresh_constant)) 4.78/1.78 down(f(g(f(x0)))) 4.78/1.78 down(f(g(g(x0)))) 4.78/1.78 down(f(g(b))) 4.78/1.78 down(f(g(fresh_constant))) 4.78/1.78 f_flat(up(x0)) 4.78/1.78 4.78/1.78 We have to consider all minimal (P,Q,R)-chains. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (13) UsableRulesProof (EQUIVALENT) 4.78/1.78 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (14) 4.78/1.78 Obligation: 4.78/1.78 Q DP problem: 4.78/1.78 The TRS P consists of the following rules: 4.78/1.78 4.78/1.78 TOP(up(x)) -> TOP(down(x)) 4.78/1.78 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 The set Q consists of the following terms: 4.78/1.78 4.78/1.78 down(f(f(x0))) 4.78/1.78 down(g(x0)) 4.78/1.78 top(up(x0)) 4.78/1.78 down(f(a)) 4.78/1.78 down(f(b)) 4.78/1.78 down(f(fresh_constant)) 4.78/1.78 down(f(g(f(x0)))) 4.78/1.78 down(f(g(g(x0)))) 4.78/1.78 down(f(g(b))) 4.78/1.78 down(f(g(fresh_constant))) 4.78/1.78 f_flat(up(x0)) 4.78/1.78 4.78/1.78 We have to consider all minimal (P,Q,R)-chains. 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (15) QReductionProof (EQUIVALENT) 4.78/1.78 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 4.78/1.78 4.78/1.78 top(up(x0)) 4.78/1.78 4.78/1.78 4.78/1.78 ---------------------------------------- 4.78/1.78 4.78/1.78 (16) 4.78/1.78 Obligation: 4.78/1.78 Q DP problem: 4.78/1.78 The TRS P consists of the following rules: 4.78/1.78 4.78/1.78 TOP(up(x)) -> TOP(down(x)) 4.78/1.78 4.78/1.78 The TRS R consists of the following rules: 4.78/1.78 4.78/1.78 down(f(f(x))) -> up(b) 4.78/1.78 down(g(x)) -> up(f(g(x))) 4.78/1.78 down(f(a)) -> f_flat(down(a)) 4.78/1.78 down(f(b)) -> f_flat(down(b)) 4.78/1.78 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.78 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.78 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.78 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.78 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.78 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.78 4.78/1.78 The set Q consists of the following terms: 4.78/1.79 4.78/1.79 down(f(f(x0))) 4.78/1.79 down(g(x0)) 4.78/1.79 down(f(a)) 4.78/1.79 down(f(b)) 4.78/1.79 down(f(fresh_constant)) 4.78/1.79 down(f(g(f(x0)))) 4.78/1.79 down(f(g(g(x0)))) 4.78/1.79 down(f(g(b))) 4.78/1.79 down(f(g(fresh_constant))) 4.78/1.79 f_flat(up(x0)) 4.78/1.79 4.78/1.79 We have to consider all minimal (P,Q,R)-chains. 4.78/1.79 ---------------------------------------- 4.78/1.79 4.78/1.79 (17) RFCMatchBoundsDPProof (EQUIVALENT) 4.78/1.79 Finiteness of the DP problem can be shown by a matchbound of 3. 4.78/1.79 As the DP problem is minimal we only have to initialize the certificate graph by the rules of P: 4.78/1.79 4.78/1.79 TOP(up(x)) -> TOP(down(x)) 4.78/1.79 4.78/1.79 To find matches we regarded all rules of R and P: 4.78/1.79 4.78/1.79 down(f(f(x))) -> up(b) 4.78/1.79 down(g(x)) -> up(f(g(x))) 4.78/1.79 down(f(a)) -> f_flat(down(a)) 4.78/1.79 down(f(b)) -> f_flat(down(b)) 4.78/1.79 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 4.78/1.79 down(f(g(f(y6)))) -> f_flat(down(g(f(y6)))) 4.78/1.79 down(f(g(g(y7)))) -> f_flat(down(g(g(y7)))) 4.78/1.79 down(f(g(b))) -> f_flat(down(g(b))) 4.78/1.79 down(f(g(fresh_constant))) -> f_flat(down(g(fresh_constant))) 4.78/1.79 f_flat(up(x_1)) -> up(f(x_1)) 4.78/1.79 TOP(up(x)) -> TOP(down(x)) 4.78/1.79 4.78/1.79 The certificate found is represented by the following graph. 4.78/1.79 The certificate consists of the following enumerated nodes: 4.78/1.79 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374 4.78/1.79 4.78/1.79 Node 357 is start node and node 358 is final node. 4.78/1.79 4.78/1.79 Those nodes are connected through the following edges: 4.78/1.79 4.78/1.79 * 357 to 359 labelled TOP_1(0)* 357 to 368 labelled TOP_1(1)* 357 to 372 labelled TOP_1(2)* 357 to 374 labelled TOP_1(3)* 358 to 358 labelled #_1(0)* 359 to 358 labelled down_1(0)* 359 to 360 labelled up_1(1)* 359 to 361 labelled up_1(1)* 359 to 363 labelled f_flat_1(1)* 359 to 365 labelled f_flat_1(1)* 359 to 371 labelled up_1(2)* 360 to 358 labelled b(1)* 361 to 362 labelled f_1(1)* 362 to 358 labelled g_1(1)* 363 to 364 labelled down_1(1)* 364 to 358 labelled a(1), b(1), fresh_constant(1)* 365 to 366 labelled down_1(1)* 365 to 369 labelled up_1(2)* 366 to 367 labelled g_1(1)* 367 to 358 labelled f_1(1), g_1(1), b(1), fresh_constant(1)* 368 to 360 labelled down_1(1)* 368 to 361 labelled down_1(1)* 368 to 365 labelled f_flat_1(1)* 368 to 371 labelled down_1(1), up_1(2)* 369 to 370 labelled f_1(2)* 370 to 367 labelled g_1(2)* 371 to 369 labelled f_1(2)* 371 to 370 labelled b(2)* 372 to 371 labelled down_1(2)* 372 to 373 labelled up_1(3)* 373 to 370 labelled b(3)* 374 to 373 labelled down_1(3) 4.78/1.79 4.78/1.79 4.78/1.79 ---------------------------------------- 4.78/1.79 4.78/1.79 (18) 4.78/1.79 YES 4.78/1.83 EOF