channel c.
const a,b : bitstring.
fun f(bitstring) : bitstring.

reduc forall X:bitstring; equal(X,X) = true. (* Sans false, juste fail *)

const sec : bitstring [private].
query attacker(sec).

process
!( new r : bitstring;
   in(c,x:bitstring);
   let w = if equal(a,x) then f(r) else sec in
     out(c, w)
   else
     let w = f(sec) in
     out(c, w)
)

(* EXPECTPV
RESULT not attacker(sec) is true.
0.004s (user 0.004s + system 0.000s), max rss 7568K
END *)
