free c:channel.
const a:bitstring.
const b:bitstring.
free sk:bitstring [private].

event A.
event B.
event C.

fun h(bitstring):bitstring
reduc h(a) = b.

letfun f1(x:bitstring)=
  let (=h(b),x:bitstring) = (a,b) in x else sk.

query attacker(sk).

process
  in(c,x:bitstring);
  let (=h(b),y:bitstring) = (h(b),b) in out(c,sk)

(* EXPECTPV
RESULT not attacker(sk[]) is true.
0.000s (user 0.000s + system 0.000s), max rss 7308K
END *)
