(* 

The system should prove strong secrecy by grouping 
destructor applications.

*)

private free secret.
noninterf secret.

fun encrypt/2.
reduc decrypt(encrypt(x,y),y) = x.

free c.
free c1.
free c2.

process let x = encrypt((c,c1), secret) in
	let (=c1,y) = decrypt(x, c2) in out(c,c1) else out(c,c2)

(* EXPECTPV
RESULT Non-interference secret is true.
0.012s (user 0.008s + system 0.004s), max rss 7464K
END *)
