free c:channel.

fun h(bitstring):bitstring.

const a,b:bitstring.

const ok,ko:bitstring.

event A(bitstring).
event B(bitstring).
event C(bitstring).

set verboseLemmas = true.
set verboseBase = true.
restriction x:bitstring; event(C(x)) ==> event(B(x)).
restriction x:bitstring; event(B(x)) ==> event(A(x)).

query x:bitstring; inj-event(C(x)) ==> inj-event(A(x)).

process
  !
  in(c,x:bitstring);
  in(c,y:bitstring);
  in(c,z:bitstring);
  event A(x);
  event B(y);
  event C(z)

(* EXPECTPV
RESULT inj-event(C(x_1)) ==> inj-event(A(x_1)) cannot be proved.
RESULT (but event(C(x_1)) ==> event(A(x_1)) is true.)
0.012s (user 0.004s + system 0.008s), max rss 7848K
END *)
