law(la,authority(cAdmin),language(prolog)). authority(cAdmin,keyHash(59FDEDC45F143A486AC0972C15B96FA3)). authority(sysAdmin,keyHash(AB693754C7D0C01C9D1278C90F990803)). %%authority(cAdmin,keyHash()). %%authority(sysAdmin,keyHash()). adopted(Par,cert([certificate(issuer(sysAdmin),subject(Self),attributes(A))])) :- do(add(level(0))), (A=role(mgr) -> do(add(role(mgr)));true). adopted(par(Args)) :- do(add(level(0))). certified(Name,certificate(issuer(sysAdmin),subject(Self),attributes(role(mgr)))) :- do(add(role(mgr))). sent(X,getCS,Y) :- do(discloseCS(all)). sent(X,setLevel(K),Y) :- role(mgr)@CS, do(forward). arrived(X,setLevel(K),Y) :- level(K1)@CS,do(replace(level(K1),level(K))), do(deliver). sent(X,M,Y) :- level(K)@CS, do(forward(X,[K,M],Y)). arrived(X,[K,M],Y) :- level(K1)@CS, (K = K1; K1 is K-1), do(deliver(X,M,Y)). disconnected :- do(quit).