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

equivalence
   in(c, x:bitstring); in(c, y:bitstring); ! new a: bitstring; if hash((a,x)) = hash((a,y)) then
   ! out(c,x) else ! in(c,z:bitstring); out(c,y)

   in(c, x:bitstring); in(c, y:bitstring); if x = y then
   ! out(c,x) else ! in(c,z:bitstring); out(c,y)


(* EXPECTPV
RESULT Observational equivalence is true.
0.012s (user 0.008s + system 0.004s), max rss 8672K
END *)
