const a,b: bitstring.

reduc mayfail(a) = a.


channel c.

equivalence
    in(c, x: bitstring);
    let (=mayfail(x),y:bitstring) = (a,a) in
        out(c, ())
    else
	out(c, a)

    in(c, x: bitstring);
    let (=mayfail(x),y:bitstring) = (a,a) in
        out(c, ())
    else
	out(c, b)

(* EXPECTPV
RESULT Observational equivalence cannot be proved.
0.020s (user 0.016s + system 0.004s), max rss 8716K
END *)
