fun roguetest/5.
free rogueid1.
free rogueid2.
free rogueid3.
fun true/0.
fun false/0.
fun exp/2.
fun public1/1. (* autogenerated ZK-theory *)
fun pzk0/1. (* autogenerated ZK-theory for ZK(2;4;land(eq(beta1,exp(beta2,alpha1)),blindver(alpha2,alpha1,beta3))) *)
query ev:DAAVERIFIEDA(xm).

reduc equals(x,x)=x.
equation roguetest(zeta,exp(zeta,x),x,y,z) = true.
equation roguetest(zeta,exp(zeta,y),x,y,z) = true.
equation roguetest(zeta,exp(zeta,z),x,y,z) = true.
equation public1(pzk0(x)) = x. 

process
    let zkproof = pzk0(exp(zeta,rogueid1)) in
    (let N = public1(zkproof) in 
    (let xif10 = equals(roguetest(zeta,N,rogueid1,rogueid2,rogueid3),true) in 
       event ROGUEAV(m) 
     else 
       event DAAVERIFIEDA(m)))


(* EXPECTPV
RESULT not ev:DAAVERIFIEDA(xm) is true.
0.008s (user 0.000s + system 0.008s), max rss 7432K
END *)
