removed prs / prs_fn (broken, because it did not include \n in its
semantics, forcing writeln to add one uncoditionally);
replaced prs_fn by writeln fn;
consts valif :: ifex => (nat => bool) => bool
primrec
"valif (CIF b) env = b"
"valif (VIF x) env = env x"
"valif (IF b t e) env = (if valif b env then valif t env
else valif e env)"