free a: bitstring.
free c,d,e:channel.
fun hash(bitstring):bitstring.

equivalence
   (let x = hash(a) in
       out(c, x) | out(d, x)) | out(e, hash(a))

   out(e, hash(a)) | let x = hash(a) in
       (out(c, x) | out(d, x))
 

(* EXPECTPV
RESULT Observational equivalence cannot be proved.
RESULT Observational equivalence cannot be proved.
RESULT Observational equivalence cannot be proved.
RESULT Observational equivalence is true.
0.040s (user 0.028s + system 0.012s), max rss 9296K
END *)
