cpsa-4.4.4: tst/dhcr_um_goals.tst
(herald "DHCR: unified model (UM) original" (bound 30) (limit 8000)
(goals-sat) (algebra diffie-hellman))
(comment "CPSA 4.4.4")
(comment "All input read from tst/dhcr_um_goals.scm")
(comment "Step count limited to 8000")
(comment "Strand count bounded at 30")
(defprotocol dhcr-um diffie-hellman
(defrole init
(vars (l x rndx) (beta eta expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv a l))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))
(send nb))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(facts (neq a b))
(gen-st (pv a l)))
(defrole resp
(vars (l y rndx) (alpha chi expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv b l))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l alpha)) (exp (gen) (mul y chi))))))
(recv nb) (send "done"))
(uniq-orig nb)
(uniq-gen y)
(absent (y l) (y alpha) (y chi))
(facts (neq a b))
(gen-st (pv b l)))
(defrole ltx-gen
(vars (self name) (l rndx) (priv-stor locn) (ignore mesg))
(trace (load priv-stor ignore) (stor priv-stor (pv self l))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
(uniq-orig l))
(defrole ltx-disclose
(vars (self name) (l rndx) (priv-stor locn))
(trace (load priv-stor (pv self l)) (stor priv-stor "nil") (send l))
(gen-st (pv self l)))
(defrule undisclosed-not-disclosed
(forall ((z strd) (l rndx))
(implies
(and (fact undisclosed l) (p "ltx-disclose" z (idx 2))
(p "ltx-disclose" "l" z l))
(false))))
(defrule ltx-gen-once-inference
(forall ((z1 z2 strd) (self name))
(implies
(and (fact ltx-gen-once self) (p "ltx-gen" z1 (idx 2))
(p "ltx-gen" "self" z1 self) (p "ltx-gen" z2 (idx 2))
(p "ltx-gen" "self" z2 self))
(= z1 z2))))
(defrule eq-means-=
(forall ((v1 v2 mesg)) (implies (fact eq v1 v2) (= v1 v2))))
(defgenrule neqRl_indx
(forall ((x indx)) (implies (fact neq x x) (false))))
(defgenrule neqRl_strd
(forall ((x strd)) (implies (fact neq x x) (false))))
(defgenrule neqRl_mesg
(forall ((x mesg)) (implies (fact neq x x) (false))))
(defgenrule scissorsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
(and (= z1 z2) (= i1 i2)))))
(defgenrule cakeRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
(leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
(defgenrule no-interruption
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (leads-to z0 i0 z2 i2) (trans z1 i1)
(same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
(false))))
(defgenrule shearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
(prec z0 i0 z2 i2))
(or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
(defgenrule invShearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
(leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
(or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
(defgenrule fact-init-neq0
(forall ((z strd) (b a name))
(implies
(and (p "init" z (idx 2)) (p "init" "a" z a) (p "init" "b" z b))
(fact neq a b))))
(defgenrule fact-resp-neq0
(forall ((z strd) (b a name))
(implies
(and (p "resp" z (idx 2)) (p "resp" "a" z a) (p "resp" "b" z b))
(fact neq a b))))
(defgenrule trRl_ltx-gen-at-1
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-gen-at-0
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 0)))))
(defgenrule trRl_ltx-disclose-at-1
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-disclose-at-0
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 0)))))
(defgenrule gen-st-init-0
(forall ((z strd) (a name) (l rndx))
(implies
(and (p "init" z (idx 1)) (p "init" "l" z l) (p "init" "a" z a))
(gen-st (pv a l)))))
(defgenrule gen-st-resp-0
(forall ((z strd) (b name) (l rndx))
(implies
(and (p "resp" z (idx 1)) (p "resp" "l" z l) (p "resp" "b" z b))
(gen-st (pv b l)))))
(defgenrule gen-st-ltx-disclose-0
(forall ((z strd) (self name) (l rndx))
(implies
(and (p "ltx-disclose" z (idx 1)) (p "ltx-disclose" "l" z l)
(p "ltx-disclose" "self" z self)) (gen-st (pv self l)))))
(lang (sig sign) (body (tuple 3)) (pv (tuple 2))))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn)
(l l-peer x rndx) (eta expt))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-peer) (eta eta))
(non-orig (privk "sig" b))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x l-peer))
(facts (neq a b) (undisclosed l) (undisclosed l-peer))
(goals
(forall
((na nb data) (a b name) (priv-stor locn) (l l-peer x rndx)
(eta expt) (z strd))
(implies
(and (p "init" z 4) (p "init" "na" z na) (p "init" "nb" z nb)
(p "init" "a" z a) (p "init" "b" z b)
(p "init" "priv-stor" z priv-stor) (p "init" "l" z l)
(p "init" "x" z x) (p "init" "beta" z l-peer)
(p "init" "eta" z eta) (non (privk "sig" b)) (ugen x)
(uniq-at na z 2) (fact neq a b) (fact undisclosed l)
(fact undisclosed l-peer))
(exists ((z-1 strd) (y rndx) (w expt))
(and (= eta (mul w y)) (p "resp" z-1 4) (p "resp" "na" z-1 na)
(p "resp" "nb" z-1 nb) (p "resp" "a" z-1 a)
(p "resp" "b" z-1 b) (p "resp" "l" z-1 l-peer)
(p "resp" "y" z-1 y) (p "resp" "alpha" z-1 l)
(p "resp" "chi" z-1 (mul y w)) (prec z 2 z-1 2) (ugen y)
(uniq-at nb z-1 3))))))
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-peer) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-peer))
(exp (gen) (mul x eta))))))))
(label 0)
(unrealized (0 1))
(origs (na (0 2)))
(ugens (x (0 2)))
(comment "Not closed under rules"))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn)
(l l-peer x rndx) (eta expt))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-peer) (eta eta))
(non-orig (privk "sig" b))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x l-peer))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-peer))
(rule fact-resp-neq0 gen-st-ltx-disclose-0)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-peer) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-peer))
(exp (gen) (mul x eta))))))))
(label 1)
(parent 0)
(unrealized (0 0) (0 1))
(origs (na (0 2)))
(ugens (x (0 2)))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore mesg) (na nb data) (a b name) (pt pt-0 pval)
(priv-stor locn) (l-peer x rndx) (eta expt) (l rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-peer) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(precedes ((1 1) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na l)
(uniq-gen x)
(absent (x l-peer) (x l))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-peer))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor (cat pt (pv a l))) (0 0))
(strand-map 0)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-peer) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l-peer l))
(exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l)))))
(label 2)
(parent 1)
(unrealized (0 1) (0 3))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 1) (0 0)) ((2 2) (0 1)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (added-strand ltx-gen 3)
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)) (0 1))
(strand-map 0 1)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))))
(label 3)
(parent 2)
(unrealized (0 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 x y rndx)
(chi expt))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y l-1) (y chi))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 gen-st-ltx-disclose-0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test (added-strand resp 4)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))) (0 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))))
(label 4)
(parent 3)
(unrealized (0 3) (3 0) (3 1))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(precedes ((0 2) (3 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))) (0 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))))
(label 5)
(parent 3)
(unrealized (3 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x y rndx)
(chi expt) (l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
((3 3) (0 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y chi) (y l-0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((2 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 4 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))))
(label 6)
(parent 4)
(unrealized (0 3) (3 1))
(fringe)
(satisfies-all)
(maps
((0)
((na na) (nb nb) (a a) (b b) (priv-stor priv-stor) (l l)
(l-peer l-0) (x x) (eta (mul (rec x) y chi)))))
(origs (l-0 (2 1)) (pt-2 (2 1)) (nb (3 3)) (l (1 1)) (pt (1 1))
(na (0 2)))
(ugens (y (3 3)) (x (0 2)))
(comment "satisfies all"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
((4 1) (3 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1)))))
(label 7)
(parent 4)
(unrealized (0 3) (3 1))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3))
((4 1) (3 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))))
(label 8)
(parent 5)
(unrealized (4 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
((4 1) (3 0)) ((4 1) (5 0)) ((5 1) (3 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l l-0)) l-1))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1))))
(label 9)
(parent 7)
(unrealized (0 3) (5 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-1))) l-0))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l (rec l-1))) l-0))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l (rec l-1))) l-0))
(send (cat (exp (gen) (mul l (rec l-1))) l-0))))
(label 10)
(parent 7)
(unrealized (0 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l-0 (rec l-1))) l))
(send (cat (exp (gen) (mul l-0 (rec l-1))) l))))
(label 11)
(parent 7)
(unrealized (0 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 12)
(parent 8)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((0 2) (4 0)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 13)
(parent 8)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1)) ((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
(label 14)
(parent 9)
(unrealized (0 3) (5 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (7 0)) ((2 2) (0 1))
((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
((6 2) (5 0)) ((7 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 15)
(parent 14)
(unrealized (0 3) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (7 0)) ((2 2) (0 1))
((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
((6 2) (5 0)) ((7 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 16)
(parent 14)
(unrealized (0 3) (7 0))
(dead)
(comment "empty cohort"))
(comment "Nothing left to do")
(defprotocol dhcr-um diffie-hellman
(defrole init
(vars (l x rndx) (beta eta expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv a l))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))
(send nb))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(facts (neq a b))
(gen-st (pv a l)))
(defrole resp
(vars (l y rndx) (alpha chi expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv b l))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l alpha)) (exp (gen) (mul y chi))))))
(recv nb) (send "done"))
(uniq-orig nb)
(uniq-gen y)
(absent (y l) (y alpha) (y chi))
(facts (neq a b))
(gen-st (pv b l)))
(defrole ltx-gen
(vars (self name) (l rndx) (priv-stor locn) (ignore mesg))
(trace (load priv-stor ignore) (stor priv-stor (pv self l))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
(uniq-orig l))
(defrole ltx-disclose
(vars (self name) (l rndx) (priv-stor locn))
(trace (load priv-stor (pv self l)) (stor priv-stor "nil") (send l))
(gen-st (pv self l)))
(defrule undisclosed-not-disclosed
(forall ((z strd) (l rndx))
(implies
(and (fact undisclosed l) (p "ltx-disclose" z (idx 2))
(p "ltx-disclose" "l" z l))
(false))))
(defrule ltx-gen-once-inference
(forall ((z1 z2 strd) (self name))
(implies
(and (fact ltx-gen-once self) (p "ltx-gen" z1 (idx 2))
(p "ltx-gen" "self" z1 self) (p "ltx-gen" z2 (idx 2))
(p "ltx-gen" "self" z2 self))
(= z1 z2))))
(defrule eq-means-=
(forall ((v1 v2 mesg)) (implies (fact eq v1 v2) (= v1 v2))))
(defgenrule neqRl_indx
(forall ((x indx)) (implies (fact neq x x) (false))))
(defgenrule neqRl_strd
(forall ((x strd)) (implies (fact neq x x) (false))))
(defgenrule neqRl_mesg
(forall ((x mesg)) (implies (fact neq x x) (false))))
(defgenrule scissorsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
(and (= z1 z2) (= i1 i2)))))
(defgenrule cakeRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
(leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
(defgenrule no-interruption
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (leads-to z0 i0 z2 i2) (trans z1 i1)
(same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
(false))))
(defgenrule shearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
(prec z0 i0 z2 i2))
(or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
(defgenrule invShearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
(leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
(or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
(defgenrule fact-init-neq0
(forall ((z strd) (b a name))
(implies
(and (p "init" z (idx 2)) (p "init" "a" z a) (p "init" "b" z b))
(fact neq a b))))
(defgenrule fact-resp-neq0
(forall ((z strd) (b a name))
(implies
(and (p "resp" z (idx 2)) (p "resp" "a" z a) (p "resp" "b" z b))
(fact neq a b))))
(defgenrule trRl_ltx-gen-at-1
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-gen-at-0
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 0)))))
(defgenrule trRl_ltx-disclose-at-1
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-disclose-at-0
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 0)))))
(defgenrule gen-st-init-0
(forall ((z strd) (a name) (l rndx))
(implies
(and (p "init" z (idx 1)) (p "init" "l" z l) (p "init" "a" z a))
(gen-st (pv a l)))))
(defgenrule gen-st-resp-0
(forall ((z strd) (b name) (l rndx))
(implies
(and (p "resp" z (idx 1)) (p "resp" "l" z l) (p "resp" "b" z b))
(gen-st (pv b l)))))
(defgenrule gen-st-ltx-disclose-0
(forall ((z strd) (self name) (l rndx))
(implies
(and (p "ltx-disclose" z (idx 1)) (p "ltx-disclose" "l" z l)
(p "ltx-disclose" "self" z self)) (gen-st (pv self l)))))
(lang (sig sign) (body (tuple 3)) (pv (tuple 2))))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn)
(l l-peer y rndx) (chi expt))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-peer) (chi chi))
(non-orig (privk "sig" a))
(uniq-orig nb)
(uniq-gen y)
(absent (y l) (y l-peer) (y chi))
(facts (neq a b) (undisclosed l) (undisclosed l-peer))
(goals
(forall
((z strd) (na nb data) (a b name) (l l-peer y rndx) (chi expt))
(implies
(and (p "resp" z 5) (p "resp" "na" z na) (p "resp" "nb" z nb)
(p "resp" "a" z a) (p "resp" "b" z b) (p "resp" "l" z l)
(p "resp" "y" z y) (p "resp" "alpha" z l-peer)
(p "resp" "chi" z chi) (non (privk "sig" a)) (ugen y)
(uniq-at nb z 3) (fact neq a b) (fact undisclosed l)
(fact undisclosed l-peer))
(exists ((z-1 strd) (x rndx) (w expt))
(and (= chi (mul x w)) (p "init" z-1 5)
(p "resp" "chi" z (mul x w)) (p "init" "na" z-1 na)
(p "init" "nb" z-1 nb) (p "init" "a" z-1 a)
(p "init" "b" z-1 b) (p "init" "l" z-1 l-peer)
(p "init" "x" z-1 x) (p "init" "beta" z-1 l)
(p "init" "eta" z-1 (mul y w)) (prec z 3 z-1 3)
(prec z-1 2 z 2) (prec z-1 4 z 4) (ugen x)
(uniq-at na z-1 2))))))
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-peer) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-peer)) (exp (gen) (mul y chi))))))
(recv nb)))
(label 17)
(unrealized (0 1))
(origs (nb (0 3)))
(ugens (y (0 3)))
(comment "Not closed under rules"))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn)
(l l-peer y rndx) (chi expt))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-peer) (chi chi))
(non-orig (privk "sig" a))
(uniq-orig nb)
(uniq-gen y)
(absent (y l) (y l-peer) (y chi))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-peer))
(rule fact-init-neq0 gen-st-ltx-disclose-0)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-peer) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-peer)) (exp (gen) (mul y chi))))))
(recv nb)))
(label 18)
(parent 17)
(unrealized (0 0) (0 1))
(origs (nb (0 3)))
(ugens (y (0 3)))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore mesg) (na nb data) (a b name) (pt pt-0 pval)
(priv-stor locn) (l-peer y rndx) (chi expt) (l rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-peer) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(precedes ((1 1) (0 0)))
(non-orig (privk "sig" a))
(uniq-orig nb l)
(uniq-gen y)
(absent (y l-peer) (y chi) (y l))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-peer))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor (cat pt (pv b l))) (0 0))
(strand-map 0)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-peer) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l-peer l)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l)))))
(label 19)
(parent 18)
(unrealized (0 1) (0 4))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 1) (0 0)) ((2 2) (0 1)))
(non-orig (privk "sig" a))
(uniq-orig nb l l-0)
(uniq-gen y)
(absent (y chi) (y l) (y l-0))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (added-strand ltx-gen 3)
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))))
(label 20)
(parent 19)
(unrealized (0 4))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 x rndx)
(eta expt) (y x-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 2) (0 2))
((3 4) (0 4)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-resp-neq0 gen-st-ltx-disclose-0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-strand init 5) nb (0 4)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y)))))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb)))
(label 21)
(parent 20)
(unrealized (3 0) (3 1) (3 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(precedes ((0 3) (3 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 4)))
(non-orig (privk "sig" a))
(uniq-orig nb l l-0)
(uniq-gen y)
(absent (y chi) (y l) (y l-0))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))) nb (0 4)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(label 22)
(parent 20)
(unrealized (3 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
(eta expt) (y x-0 l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x-0) (beta l) (eta (mul x eta y (rec x-0))))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
((3 2) (0 2)) ((3 4) (0 4)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x-0)
(absent (y l) (y (mul x eta)) (y l-0) (x-0 l) (x-0 l-0))
(gen-st (pv a l-0) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((2 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 4 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-0 (cat pt-2 (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb)))
(label 23)
(parent 21)
(unrealized (3 1) (3 3))
(fringe)
(satisfies-all)
(maps
((0)
((na na) (nb nb) (a a) (b b) (l l) (l-peer l-0) (y y)
(chi (mul x eta)) (priv-stor priv-stor))))
(origs (l-0 (2 1)) (pt-2 (2 1)) (na (3 2)) (l (1 1)) (pt (1 1))
(nb (0 3)))
(ugens (x-0 (3 2)) (y (0 3)))
(comment "satisfies all"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 2) (0 2))
((3 4) (0 4)) ((4 1) (3 0)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1)))))
(label 24)
(parent 21)
(unrealized (3 1) (3 3))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(precedes ((0 3) (4 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 4))
((4 1) (3 0)))
(non-orig (privk "sig" a))
(uniq-orig nb l l-0)
(uniq-gen y)
(absent (y chi) (y l) (y l-0))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(label 25)
(parent 22)
(unrealized (4 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 2) (0 2))
((3 4) (0 4)) ((4 1) (3 0)) ((4 1) (5 0)) ((5 1) (3 1)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l l-0)) l-1))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1))))
(label 26)
(parent 24)
(unrealized (3 3) (5 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-1))) l-0))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
((3 2) (0 2)) ((3 4) (0 4)) ((4 1) (3 0)) ((5 1) (3 1)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l (rec l-1))) l-0))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l (rec l-1))) l-0))
(send (cat (exp (gen) (mul l (rec l-1))) l-0))))
(label 27)
(parent 24)
(unrealized (3 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
((3 2) (0 2)) ((3 4) (0 4)) ((4 1) (3 0)) ((5 1) (3 1)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(exp (gen) (mul l l-0 (rec l-1))) (3 1))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l-0 (rec l-1))) l))
(send (cat (exp (gen) (mul l-0 (rec l-1))) l))))
(label 28)
(parent 24)
(unrealized (3 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((0 3) (4 0)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a))
(uniq-orig nb l l-0)
(uniq-gen y)
(absent (y chi) (y l) (y l-0))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 29)
(parent 25)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((0 3) (4 0)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a))
(uniq-orig nb l l-0)
(uniq-gen y)
(absent (y chi) (y l) (y l-0))
(gen-st (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)))
(rule fact-init-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 30)
(parent 25)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self a) (priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 2) (0 2))
((3 4) (0 4)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
((6 2) (5 0)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
(label 31)
(parent 26)
(unrealized (3 3) (5 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self a) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((2 1) (7 0)) ((2 2) (0 1))
((3 2) (0 2)) ((3 4) (0 4)) ((4 1) (3 0)) ((4 1) (6 0))
((5 1) (3 1)) ((6 2) (5 0)) ((7 1) (5 0)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 32)
(parent 31)
(unrealized (3 3) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (eta expt)
(y x-0 l-1 rndx))
(defstrand resp 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x eta)))
(defstrand ltx-gen 2 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta (mul l l-0 (rec l-1)))
(eta (mul x eta y (rec x-0))))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self a) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((0 3) (3 3)) ((1 1) (0 0)) ((1 1) (7 0)) ((2 2) (0 1))
((3 2) (0 2)) ((3 4) (0 4)) ((4 1) (3 0)) ((4 1) (6 0))
((5 1) (3 1)) ((6 2) (5 0)) ((7 1) (5 0)))
(non-orig (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x-0)
(absent (y l) (y l-0) (y (mul x eta)) (x-0 (mul l l-0 (rec l-1)))
(x-0 l-1))
(gen-st (pv a l-1) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x eta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(recv nb))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv b l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv a l-0)))
(send
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x eta y (rec x-0)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta y))))))
(send nb))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 33)
(parent 31)
(unrealized (3 3) (7 0))
(dead)
(comment "empty cohort"))
(comment "Nothing left to do")
(defprotocol dhcr-um diffie-hellman
(defrole init
(vars (l x rndx) (beta eta expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv a l))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))
(send nb))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(facts (neq a b))
(gen-st (pv a l)))
(defrole resp
(vars (l y rndx) (alpha chi expt) (a b name) (na nb data)
(priv-stor locn))
(trace (load priv-stor (pv b l))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l alpha)) (exp (gen) (mul y chi))))))
(recv nb) (send "done"))
(uniq-orig nb)
(uniq-gen y)
(absent (y l) (y alpha) (y chi))
(facts (neq a b))
(gen-st (pv b l)))
(defrole ltx-gen
(vars (self name) (l rndx) (priv-stor locn) (ignore mesg))
(trace (load priv-stor ignore) (stor priv-stor (pv self l))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
(uniq-orig l))
(defrole ltx-disclose
(vars (self name) (l rndx) (priv-stor locn))
(trace (load priv-stor (pv self l)) (stor priv-stor "nil") (send l))
(gen-st (pv self l)))
(defrule undisclosed-not-disclosed
(forall ((z strd) (l rndx))
(implies
(and (fact undisclosed l) (p "ltx-disclose" z (idx 2))
(p "ltx-disclose" "l" z l))
(false))))
(defrule ltx-gen-once-inference
(forall ((z1 z2 strd) (self name))
(implies
(and (fact ltx-gen-once self) (p "ltx-gen" z1 (idx 2))
(p "ltx-gen" "self" z1 self) (p "ltx-gen" z2 (idx 2))
(p "ltx-gen" "self" z2 self))
(= z1 z2))))
(defrule eq-means-=
(forall ((v1 v2 mesg)) (implies (fact eq v1 v2) (= v1 v2))))
(defgenrule neqRl_indx
(forall ((x indx)) (implies (fact neq x x) (false))))
(defgenrule neqRl_strd
(forall ((x strd)) (implies (fact neq x x) (false))))
(defgenrule neqRl_mesg
(forall ((x mesg)) (implies (fact neq x x) (false))))
(defgenrule scissorsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
(and (= z1 z2) (= i1 i2)))))
(defgenrule cakeRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
(leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
(defgenrule no-interruption
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (leads-to z0 i0 z2 i2) (trans z1 i1)
(same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
(false))))
(defgenrule shearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (trans z2 i2)
(leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
(prec z0 i0 z2 i2))
(or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
(defgenrule invShearsRule
(forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
(implies
(and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
(leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
(or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
(defgenrule fact-init-neq0
(forall ((z strd) (b a name))
(implies
(and (p "init" z (idx 2)) (p "init" "a" z a) (p "init" "b" z b))
(fact neq a b))))
(defgenrule fact-resp-neq0
(forall ((z strd) (b a name))
(implies
(and (p "resp" z (idx 2)) (p "resp" "a" z a) (p "resp" "b" z b))
(fact neq a b))))
(defgenrule trRl_ltx-gen-at-1
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-gen-at-0
(forall ((z strd))
(implies (p "ltx-gen" z (idx 2)) (trans z (idx 0)))))
(defgenrule trRl_ltx-disclose-at-1
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 1)))))
(defgenrule trRl_ltx-disclose-at-0
(forall ((z strd))
(implies (p "ltx-disclose" z (idx 2)) (trans z (idx 0)))))
(defgenrule gen-st-init-0
(forall ((z strd) (a name) (l rndx))
(implies
(and (p "init" z (idx 1)) (p "init" "l" z l) (p "init" "a" z a))
(gen-st (pv a l)))))
(defgenrule gen-st-resp-0
(forall ((z strd) (b name) (l rndx))
(implies
(and (p "resp" z (idx 1)) (p "resp" "l" z l) (p "resp" "b" z b))
(gen-st (pv b l)))))
(defgenrule gen-st-ltx-disclose-0
(forall ((z strd) (self name) (l rndx))
(implies
(and (p "ltx-disclose" z (idx 1)) (p "ltx-disclose" "l" z l)
(p "ltx-disclose" "self" z self)) (gen-st (pv self l)))))
(lang (sig sign) (body (tuple 3)) (pv (tuple 2))))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn) (l x rndx)
(eta beta expt))
(deflistener (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta beta) (eta eta))
(non-orig (privk "sig" b))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(facts (neq a b) (undisclosed l) (undisclosed beta))
(goals
(forall
((z zl strd) (na nb data) (a b name) (priv-stor locn) (l x rndx)
(eta beta expt))
(implies
(and (p "init" z 4) (p "init" "na" z na) (p "init" "nb" z nb)
(p "init" "a" z a) (p "init" "b" z b)
(p "init" "priv-stor" z priv-stor) (p "init" "l" z l)
(p "init" "x" z x) (p "init" "beta" z beta)
(p "init" "eta" z eta) (non (privk "sig" b)) (ugen x)
(uniq-at na z 2) (fact neq a b) (fact undisclosed l)
(fact undisclosed beta) (p "" zl 2)
(p "" "x" zl
(hash (exp (exp (gen) beta) l) (exp (exp (gen) eta) x))))
(false))))
(traces
((recv (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))))
(label 34)
(unrealized (0 0) (1 1))
(preskeleton)
(origs (na (1 2)))
(ugens (x (1 2)))
(comment "Not a skeleton"))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn) (l x rndx)
(eta beta expt))
(deflistener (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta beta) (eta eta))
(precedes ((1 2) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(facts (neq a b) (undisclosed l) (undisclosed beta))
(traces
((recv (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))))
(label 35)
(parent 34)
(unrealized (1 1))
(origs (na (1 2)))
(ugens (x (1 2)))
(comment "Not closed under rules"))
(defskeleton dhcr-um
(vars (na nb data) (a b name) (pt pval) (priv-stor locn) (l x rndx)
(eta beta expt))
(deflistener (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta beta) (eta eta))
(precedes ((1 2) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na)
(uniq-gen x)
(absent (x l) (x beta))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed beta))
(rule fact-resp-neq0 gen-st-ltx-disclose-0)
(traces
((recv (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l beta)) (exp (gen) (mul x eta))))))))
(label 36)
(parent 35)
(unrealized (1 0) (1 1))
(origs (na (1 2)))
(ugens (x (1 2)))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore mesg) (na nb data) (a b name) (pt pt-0 pval)
(priv-stor locn) (x rndx) (eta beta expt) (l rndx))
(deflistener (hash (exp (gen) (mul beta l)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta beta) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(precedes ((1 2) (0 0)) ((2 1) (1 0)))
(non-orig (privk "sig" b))
(uniq-orig na l)
(uniq-gen x)
(absent (x beta) (x l))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed beta))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor (cat pt (pv a l))) (1 0))
(strand-map 0 1)
(traces
((recv (hash (exp (gen) (mul beta l)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul beta l)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) beta) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul beta l)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l)))))
(label 37)
(parent 36)
(unrealized (0 0) (1 1) (1 3))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 2) (0 0)) ((2 1) (1 0)) ((3 2) (1 1)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (added-strand ltx-gen 3)
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)) (1 1))
(strand-map 0 1 2)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))))
(label 38)
(parent 37)
(unrealized (0 0) (1 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 x y rndx)
(chi expt))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 2) (1 1)) ((4 3) (0 0))
((4 3) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y l-1) (y chi))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 gen-st-ltx-disclose-0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test (added-strand resp 4)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))) (1 3))
(strand-map 0 1 2 3)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))))
(label 39)
(parent 38)
(unrealized (0 0) (1 3) (4 0) (4 1))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(precedes ((1 2) (0 0)) ((1 2) (4 0)) ((2 1) (1 0)) ((3 2) (1 1))
((4 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))) (1 3))
(strand-map 0 1 2 3)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))))
(label 40)
(parent 38)
(unrealized (0 0) (4 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x y rndx)
(chi expt) (l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y chi) (y l-0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 5 3 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))))))
(label 41)
(parent 39)
(unrealized (0 0) (1 3) (4 1))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 2) (1 1)) ((4 3) (0 0))
((4 3) (1 3)) ((5 1) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1)))))
(label 42)
(parent 39)
(unrealized (0 0) (1 3) (4 1))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(precedes ((1 2) (0 0)) ((1 2) (5 0)) ((2 1) (1 0)) ((3 2) (1 1))
((4 1) (1 3)) ((5 1) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))))
(label 43)
(parent 40)
(unrealized (0 0) (5 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l)
(eta (mul (rec x) y chi)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (1 3)) ((4 1) (1 0)) ((4 2) (3 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 2 5 ltx-gen 3) (exp (gen) l-0) (4 1))
(strand-map 0 1 4 2 3)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))))
(label 44)
(parent 41)
(unrealized (0 0) (1 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x y rndx)
(chi expt) (l-0 rndx) (w expt))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(deflistener (cat (exp (gen) (mul l (rec w))) w))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y chi) (y l-0))
(precur (5 0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l (rec w))) w)) (exp (gen) l)
(4 1))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) (mul l (rec w))) w))
(send (cat (exp (gen) (mul l (rec w))) w))))
(label 45)
(parent 41)
(unrealized (0 0) (1 3) (5 0))
(comment "7 in cohort - 7 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 2) (1 1)) ((4 3) (0 0))
((4 3) (1 3)) ((5 1) (4 0)) ((5 1) (6 0)) ((6 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l l-0)) l-1))
(exp (gen) (mul l l-0 (rec l-1))) (4 1))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1))))
(label 46)
(parent 42)
(unrealized (1 3) (6 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-1))) l-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (6 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 0)) ((6 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l (rec l-1))) l-0))
(exp (gen) (mul l l-0 (rec l-1))) (4 1))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l (rec l-1))) l-0))
(send (cat (exp (gen) (mul l (rec l-1))) l-0))))
(label 47)
(parent 42)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((2 1) (6 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 0)) ((6 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l-0 (rec l-1))) l))
(exp (gen) (mul l l-0 (rec l-1))) (4 1))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l-0 (rec l-1))) l))
(send (cat (exp (gen) (mul l-0 (rec l-1))) l))))
(label 48)
(parent 42)
(unrealized (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (0 0)) ((1 2) (5 0)) ((2 1) (1 0)) ((3 1) (6 0))
((3 2) (1 1)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 49)
(parent 43)
(unrealized (0 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x rndx)
(eta expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta eta))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (0 0)) ((1 2) (5 0)) ((2 1) (1 0)) ((2 1) (6 0))
((3 2) (1 1)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na l l-0)
(uniq-gen x)
(absent (x l) (x l-0))
(gen-st (pv a l))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) eta)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x eta)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 50)
(parent 43)
(unrealized (0 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (1 3)) ((4 1) (1 0)) ((4 2) (3 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 5 3 resp 4) (exp (gen) y-0) (1 3))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))))
(label 51)
(parent 44)
(unrealized (0 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx) (w expt))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l)
(eta (mul (rec x) y chi)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(exp (gen) (mul (rec x) y chi)) (1 3))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(send (cat (exp (gen) (mul (rec x) y chi (rec w))) w))))
(label 52)
(parent 44)
(unrealized (0 0) (5 0))
(comment "8 in cohort - 8 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (x y rndx) (chi expt)
(l l-0 rndx) (beta expt) (l-1 x-0 rndx))
(deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-1))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-1) (chi chi))
(deflistener (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
(defstrand init 3 (na na-0) (a a-0) (b b-0) (priv-stor priv-stor-1)
(l l-0) (x x-0) (beta beta))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)) ((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-1)
(uniq-gen x y x-0)
(absent (x l) (x l-1) (y chi) (y l) (y l-1) (x-0 l-0) (x-0 beta))
(precur (5 0))
(gen-st (pv a l-1) (pv b l) (pv a-0 l-0))
(facts (neq a-0 b-0) (neq b-0 a-0) (neq b a) (neq a b)
(undisclosed l-1) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand init 3) (exp (gen) x-0) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-1)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-1))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
(send (cat (exp (gen) x-0) (mul l-1 (rec x-0)))))
((load priv-stor-1 (cat pt-3 (pv a-0 l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0)))
(send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
(label 53)
(parent 45)
(unrealized (0 0) (1 3) (4 1) (5 0) (6 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y rndx)
(chi expt) (l l-0 x rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul y chi (rec x))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(deflistener (cat (exp (gen) x) (mul l (rec x))))
(precedes ((1 2) (5 0)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y chi) (y l) (y l-0) (x l) (x l-0))
(precur (5 0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 1 init 3) (exp (gen) x-0) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y chi (rec x)))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) x) (mul l (rec x))))
(send (cat (exp (gen) x) (mul l (rec x))))))
(label 54)
(parent 45)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (gen) l-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((2 1) (5 0)) ((3 1) (4 0))
((3 2) (1 1)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (5 0))
(gen-st (pv a l-0) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (contracted (l-1 l-0) (w l-0)) (gen) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (gen) l-0)) (send (cat (gen) l-0))))
(label 55)
(parent 45)
(unrealized (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l)
(eta (mul (rec x) y chi)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (1 3)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (4 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 2 6 ltx-gen 3) (exp (gen) l-1) (5 0))
(strand-map 0 1 5 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))))
(label 56)
(parent 45)
(unrealized (0 0) (1 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (x y rndx) (chi expt)
(l l-0 rndx) (alpha chi-0 expt) (l-1 y-0 rndx))
(deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-1))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-1) (chi chi))
(deflistener (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0)
(priv-stor priv-stor-1) (l l-0) (y y-0) (alpha alpha) (chi chi-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)) ((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-1)
(uniq-gen x y y-0)
(absent (x l) (x l-1) (y chi) (y l) (y l-1) (y-0 l-0) (y-0 alpha)
(y-0 chi-0))
(precur (5 0))
(gen-st (pv a l-1) (pv b l) (pv b-0 l-0))
(facts (neq b-0 a-0) (neq a-0 b-0) (neq b a) (neq a b)
(undisclosed l-1) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand resp 4) (exp (gen) y-0) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-1)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-1))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
(send (cat (exp (gen) y-0) (mul l-1 (rec y-0)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na-0 a-0 b-0 (exp (gen) chi-0)))
(send
(cat (exp (gen) y-0)
(enc na-0 nb-0 a-0 b-0
(hash (exp (gen) (mul l-0 alpha))
(exp (gen) (mul chi-0 y-0))))))))
(label 57)
(parent 45)
(unrealized (0 0) (1 3) (4 1) (5 0) (6 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(deflistener (cat (exp (gen) l-0) (mul l (rec l-0))))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((3 2) (5 0)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (5 0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 3 ltx-gen 3) (exp (gen) l-1) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) l-0) (mul l (rec l-0))))
(send (cat (exp (gen) l-0) (mul l (rec l-0))))))
(label 58)
(parent 45)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b self name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (x y rndx) (chi expt)
(l l-0 l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
(defstrand ltx-gen 3 (ignore ignore-1) (self self)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)) ((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (5 0))
(gen-st (pv a l-0) (pv b l))
(facts (neq b a) (neq a b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
(send (cat (exp (gen) l-1) (mul l-0 (rec l-1)))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv self l-1)))
(send
(sig (body self (exp (gen) l-1) (pubk "sig" self))
(privk "sig" self)))))
(label 59)
(parent 45)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 2) (1 1)) ((4 3) (0 0))
((4 3) (1 3)) ((5 1) (4 0)) ((5 1) (7 0)) ((6 1) (4 1))
((7 2) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)) ((5 1) (7 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-disclose 3) l-1 (6 0)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
(label 60)
(parent 46)
(unrealized (1 3) (6 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (1 3))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))) (0 0))
(strand-map 0 1 2 3 4)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))))
(label 61)
(parent 51)
(unrealized (5 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 3 resp 4) (exp (gen) y-0) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
(label 62)
(parent 52)
(unrealized (0 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a a) (b b-0) (priv-stor priv-stor-1)
(l l-1) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y l-0) (y (mul x w x-0)) (x-2 l-1)
(x-2 beta))
(precur (5 0))
(gen-st (pv b l) (pv self l-0) (pv a l-1))
(facts (neq a b-0) (neq b-0 a) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand init 3) (exp (gen) x-2) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x-2)))))
(label 63)
(parent 52)
(unrealized (0 0) (1 3) (5 0) (6 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (x-0 y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (gen) (mul x w (rec x-0) y)))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-0) (y l) (y l-0) (y (mul x w)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(contracted (x-1 x-0) (y-0 y) (chi (mul x w))
(w-0 (mul x w (rec x-0) y)) (x x-0) (y-1 y)
(w (mul x w (rec x-0) y))) (gen) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (gen) (mul x w (rec x-0) y)))
(send (cat (gen) (mul x w (rec x-0) y)))))
(label 64)
(parent 52)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (w expt)
(l l-0 x y x-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-0)
(eta (mul w x x y (rec x-0))))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l) (chi (mul w x x)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen y x-0)
(absent (y (mul w x x)) (y l) (y l-0) (x-0 l) (x-0 l-0))
(precur (5 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b self) (neq self b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 1 init 3) (exp (gen) x-1) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul w x x y (rec x-0)))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul w x x))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))
(send (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))))
(label 65)
(parent 52)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
(w expt) (l-0 x-0 y l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-1)
(eta (mul x w l-0 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-1))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul x w l-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-1)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-1) (y l) (y (mul x w l-0)) (y l-1))
(precur (5 0))
(gen-st (pv b l-1) (pv self l))
(facts (neq b self) (neq self b) (undisclosed l) (undisclosed l-1))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 2 ltx-gen 3) (exp (gen) l-2) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-0 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-1)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(send (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))))
(label 66)
(parent 52)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 l-0) (y-0 (mul x w y))
(y-1 l-1) (y-1 alpha) (y-1 chi))
(precur (5 0))
(gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
(facts (neq b-0 a) (neq a b-0) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand resp 4) (exp (gen) y-1) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b-0 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l-1 alpha))
(exp (gen) (mul chi y-1))))))))
(label 67)
(parent 52)
(unrealized (0 0) (1 3) (5 0) (6 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
(w expt) (l-0 x-0 y l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-1) (x x-0) (beta l)
(eta (mul x w l-0 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-1) (chi (mul x w l-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-1))
(deflistener
(cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-1)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-1) (y l) (y (mul x w l-0)) (y l-1))
(precur (5 0))
(gen-st (pv b l) (pv self l-1))
(facts (neq b self) (neq self b) (undisclosed l-1) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 4 ltx-gen 3) (exp (gen) l-2) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-1)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-0 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-1) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-1)))
(send
(sig (body self (exp (gen) l-1) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(send (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))))
(label 68)
(parent 52)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data)
(b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (w expt)
(l-1 x-0 y l-2 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w l-1 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w l-1)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2))))
(defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
(priv-stor priv-stor-1) (l l-2))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-2)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-0) (y l) (y l-0) (y (mul x w l-1)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-2) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-1 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w l-1 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-1))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w l-1 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2))))
(send (cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2)))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv self-0 l-2)))
(send
(sig (body self-0 (exp (gen) l-2) (pubk "sig" self-0))
(privk "sig" self-0)))))
(label 69)
(parent 52)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l rndx) (beta expt) (x-0 l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
(defstrand init 3 (na na-0) (a a) (b b-0) (priv-stor priv-stor)
(l l-0) (x x-0) (beta beta))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((2 1) (6 0)) ((3 1) (4 0))
((3 2) (1 1)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1))
((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x y x-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (x-0 beta) (x-0 l-0))
(precur (5 0))
(gen-st (pv a l-0) (pv b l))
(facts (neq a b-0) (neq b-0 a) (neq b a) (neq a b) (undisclosed l-0)
(undisclosed l))
(leads-to ((2 1) (1 0)) ((2 1) (6 0)) ((3 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
(send (cat (exp (gen) x-0) (mul (rec x-0) l-0))))
((load priv-stor (cat pt (pv a l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x-0)))))
(label 70)
(parent 53)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi beta expt) (l x-0 l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(deflistener (cat (exp (gen) x-0) (mul l (rec x-0))))
(defstrand init 3 (na na-0) (a b) (b b-0) (priv-stor priv-stor-0)
(l l-0) (x x-0) (beta beta))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 1) (6 0))
((3 2) (1 1)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1))
((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x y x-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (x-0 beta) (x-0 l-0))
(precur (5 0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b b-0) (neq b-0 b) (neq b a) (neq a b) (undisclosed l)
(undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)) ((3 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 3 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) x-0) (mul l (rec x-0))))
(send (cat (exp (gen) x-0) (mul l (rec x-0)))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 b b-0 (exp (gen) x-0)))))
(label 71)
(parent 53)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
(a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (x y rndx) (chi expt)
(l rndx) (beta expt) (l-0 x-0 l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
(defstrand init 3 (na na-0) (a a-0) (b b-0) (priv-stor priv-stor-1)
(l l-1) (x x-0) (beta beta))
(defstrand ltx-gen 2 (ignore ignore-1) (self a-0)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)) ((6 2) (5 0))
((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0 l-1)
(uniq-gen x y x-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (x-0 beta) (x-0 l-1))
(precur (5 0))
(gen-st (pv a l-0) (pv b l) (pv a-0 l-1))
(facts (neq a-0 b-0) (neq b-0 a-0) (neq b a) (neq a b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)) ((7 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
(send (cat (exp (gen) x-0) (mul l-0 (rec x-0)))))
((load priv-stor-1 (cat pt-3 (pv a-0 l-1)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a-0 b-0 (exp (gen) x-0))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a-0 l-1)))))
(label 72)
(parent 53)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (1 3)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(precur (4 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 3 resp 4) (exp (gen) y-0) (1 3))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))))
(label 73)
(parent 56)
(unrealized (0 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l l-0 rndx) (w expt))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l)
(eta (mul (rec x) y chi)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y chi) (y l) (y l-0))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(exp (gen) (mul (rec x) y chi)) (1 3))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul (rec x) y chi (rec w))) w))
(send (cat (exp (gen) (mul (rec x) y chi (rec w))) w))))
(label 74)
(parent 56)
(unrealized (0 0) (6 0))
(comment "8 in cohort - 8 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi expt) (l rndx) (alpha chi-0 expt) (y-0 l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
(defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b a)
(priv-stor priv-stor) (l l-0) (y y-0) (alpha alpha) (chi chi-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((2 1) (6 0)) ((3 1) (4 0))
((3 2) (1 1)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1))
((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x y y-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (y-0 alpha) (y-0 chi-0)
(y-0 l-0))
(precur (5 0))
(gen-st (pv a l-0) (pv b l))
(facts (neq a a-0) (neq a-0 a) (neq b a) (neq a b) (undisclosed l-0)
(undisclosed l))
(leads-to ((2 1) (1 0)) ((2 1) (6 0)) ((3 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
(send (cat (exp (gen) y-0) (mul (rec y-0) l-0))))
((load priv-stor (cat pt (pv a l-0)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0))) (recv (cat na-0 a-0 a (exp (gen) chi-0)))
(send
(cat (exp (gen) y-0)
(enc na-0 nb-0 a-0 a
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi-0 y-0))))))))
(label 75)
(parent 57)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y rndx)
(chi alpha chi-0 expt) (l y-0 l-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi chi))
(deflistener (cat (exp (gen) y-0) (mul l (rec y-0))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b)
(priv-stor priv-stor-0) (l l-0) (y y-0) (alpha alpha) (chi chi-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 1) (6 0))
((3 2) (1 1)) ((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1))
((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x y y-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (y-0 alpha) (y-0 chi-0)
(y-0 l-0))
(precur (5 0))
(gen-st (pv a l) (pv b l-0))
(facts (neq b a-0) (neq a-0 b) (neq b a) (neq a b) (undisclosed l)
(undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)) ((3 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 3 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) y-0) (mul l (rec y-0))))
(send (cat (exp (gen) y-0) (mul l (rec y-0)))))
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0))) (recv (cat na-0 a-0 b (exp (gen) chi-0)))
(send
(cat (exp (gen) y-0)
(enc na-0 nb-0 a-0 b
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi-0 y-0))))))))
(label 76)
(parent 57)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
(a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (x y rndx) (chi expt)
(l rndx) (alpha chi-0 expt) (l-0 y-0 l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (x x) (beta l) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (y y) (alpha l-0) (chi chi))
(deflistener (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0)
(priv-stor priv-stor-1) (l l-1) (y y-0) (alpha alpha) (chi chi-0))
(defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (4 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 1)) ((6 3) (5 0))
((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0 l-1)
(uniq-gen x y y-0)
(absent (x l) (x l-0) (y chi) (y l) (y l-0) (y-0 alpha) (y-0 chi-0)
(y-0 l-1))
(precur (5 0))
(gen-st (pv a l-0) (pv b l) (pv b-0 l-1))
(facts (neq b-0 a-0) (neq a-0 b-0) (neq b a) (neq a b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (1 0)) ((3 1) (4 0)) ((7 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l-0))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-0 (cat pt-2 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((recv (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
(send (cat (exp (gen) y-0) (mul l-0 (rec y-0)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na-0 a-0 b-0 (exp (gen) chi-0)))
(send
(cat (exp (gen) y-0)
(enc na-0 nb-0 a-0 b-0
(hash (exp (gen) (mul alpha l-1))
(exp (gen) (mul chi-0 y-0)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
(label 77)
(parent 57)
(unrealized (0 0) (1 3) (4 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((3 1) (8 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 0)) ((5 1) (7 0))
((6 1) (4 1)) ((7 2) (6 0)) ((8 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)) ((5 1) (7 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 78)
(parent 60)
(unrealized (1 3) (8 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (chi expt)
(l-1 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul (rec x) y chi)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (y y) (alpha (mul l l-0 (rec l-1))) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l l-0)) l-1))
(defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (4 2)) ((2 1) (1 0)) ((2 1) (8 0)) ((3 2) (1 1))
((4 3) (0 0)) ((4 3) (1 3)) ((5 1) (4 0)) ((5 1) (7 0))
((6 1) (4 1)) ((7 2) (6 0)) ((8 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-1)
(uniq-gen x y)
(absent (x l) (x l-0) (y (mul l l-0 (rec l-1))) (y chi) (y l-1))
(gen-st (pv a l) (pv b l-1))
(facts (neq b a) (neq a b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((5 1) (4 0)) ((5 1) (7 0)))
(rule fact-resp-neq0 trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec x) y chi))
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul y chi)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b l-1))))
((recv (cat (exp (gen) (mul l l-0)) l-1))
(send (cat (exp (gen) (mul l l-0)) l-1)))
((load priv-stor-1 (cat pt-3 (pv b l-1)))
(stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 79)
(parent 60)
(unrealized (1 3) (8 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (1 3))
((3 3) (5 0)) ((4 1) (1 0)) ((4 1) (6 0)) ((4 2) (3 1))
((5 1) (0 0)) ((6 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 80)
(parent 61)
(unrealized (5 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (6 0)) ((2 2) (1 1))
((3 3) (1 3)) ((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1))
((5 1) (0 0)) ((6 1) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 81)
(parent 61)
(unrealized (5 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (5 0))
((3 3) (6 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 1) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))) (0 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))))
(label 82)
(parent 62)
(unrealized (6 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-1) (beta l-0)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l) (chi (mul x w x-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a b) (b b-0) (priv-stor priv-stor)
(l l-0) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (6 0)) ((2 2) (1 1))
((3 3) (0 0)) ((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y (mul x w x-0)) (y l-0) (x-2 beta)
(x-2 l-0))
(precur (5 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b b-0) (neq b-0 b) (neq b self) (neq self b)
(undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (3 0)) ((2 1) (6 0)) ((4 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 b b-0 (exp (gen) x-2)))))
(label 83)
(parent 63)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a self) (b b-0) (priv-stor priv-stor-0)
(l l-0) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 1) (6 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 2) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y (mul x w x-0)) (y l-0) (x-2 beta)
(x-2 l-0))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq self b-0) (neq b-0 self) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)) ((4 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 4 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0)))
(send (cat na-0 self b-0 (exp (gen) x-2)))))
(label 84)
(parent 63)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 rndx) (beta expt)
(x rndx) (w expt) (x-0 x-1 y x-2 l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a a) (b b-0) (priv-stor priv-stor-1)
(l l-1) (x x-2) (beta beta))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 2) (5 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0 l-1)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y l-0) (y (mul x w x-0)) (x-2 beta)
(x-2 l-1))
(precur (5 0))
(gen-st (pv b l) (pv self l-0) (pv a l-1))
(facts (neq a b-0) (neq b-0 a) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)) ((7 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x-2))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1)))))
(label 85)
(parent 63)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-0)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y-0) (alpha l) (chi (mul x w y)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b)
(priv-stor priv-stor) (l l-0) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (6 0)) ((2 2) (1 1))
((3 3) (0 0)) ((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 (mul x w y)) (y-0 l-0)
(y-1 alpha) (y-1 chi) (y-1 l-0))
(precur (5 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b a) (neq a b) (neq b self) (neq self b) (undisclosed l)
(undisclosed l-0))
(leads-to ((2 1) (3 0)) ((2 1) (6 0)) ((4 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi y-1))))))))
(label 86)
(parent 67)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self)
(priv-stor priv-stor-0) (l l-0) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 1) (6 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 3) (5 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 (mul x w y)) (y-0 l-0)
(y-1 alpha) (y-1 chi) (y-1 l-0))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq self a) (neq a self) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)) ((4 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 7 4 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a self (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a self
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi y-1))))))))
(label 87)
(parent 67)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (5 0)) ((4 1) (1 0)) ((4 2) (3 1)) ((5 1) (1 3))
((6 3) (5 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0 l-1)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 l-0) (y-0 (mul x w y))
(y-1 alpha) (y-1 chi) (y-1 l-1))
(precur (5 0))
(gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
(facts (neq b-0 a) (neq a b-0) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)) ((7 1) (6 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b-0 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul alpha l-1))
(exp (gen) (mul chi y-1)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
(label 88)
(parent 67)
(unrealized (0 0) (1 3) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (1 3))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(precur (4 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))) (0 0))
(strand-map 0 1 2 3 4 5)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))))
(label 89)
(parent 73)
(unrealized (6 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 3 resp 4) (exp (gen) y-0) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
(label 90)
(parent 74)
(unrealized (0 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a a) (b b-0) (priv-stor priv-stor-1)
(l l-1) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 2) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y l-0) (y (mul x w x-0)) (x-2 l-1)
(x-2 beta))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0) (pv a l-1))
(facts (neq a b-0) (neq b-0 a) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand init 3) (exp (gen) x-2) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x-2)))))
(label 91)
(parent 74)
(unrealized (0 0) (1 3) (6 0) (7 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (x-0 y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (gen) (mul x w (rec x-0) y)))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-0) (y l) (y l-0) (y (mul x w)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test
(contracted (x-1 x-0) (y-0 y) (chi (mul x w))
(w-0 (mul x w (rec x-0) y)) (x x-0) (y-1 y)
(w (mul x w (rec x-0) y))) (gen) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (gen) (mul x w (rec x-0) y)))
(send (cat (gen) (mul x w (rec x-0) y)))))
(label 92)
(parent 74)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (w expt)
(l l-0 x y x-0 rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-0)
(eta (mul w x x y (rec x-0))))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l) (chi (mul w x x)))
(deflistener (cat (exp (gen) l) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen y x-0)
(absent (y (mul w x x)) (y l) (y l-0) (x-0 l) (x-0 l-0))
(precur (4 0) (6 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b self) (neq self b) (undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 1 init 3) (exp (gen) x-1) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul w x x y (rec x-0)))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul w x x))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul w x x y)))))))
((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))
(send (cat (exp (gen) x-0) (mul w x x y (rec x-0) (rec x-0))))))
(label 93)
(parent 74)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
(w expt) (l-0 x-0 y l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-1)
(eta (mul x w l-0 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-1))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul x w l-0)))
(deflistener (cat (exp (gen) l) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-1)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-1) (y l) (y (mul x w l-0)) (y l-1))
(precur (4 0) (6 0))
(gen-st (pv b l-1) (pv self l))
(facts (neq b self) (neq self b) (undisclosed l) (undisclosed l-1))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 2 ltx-gen 3) (exp (gen) l-2) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-0 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-1)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(send (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))))
(label 94)
(parent 74)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 3) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 l-0) (y-0 (mul x w y))
(y-1 l-1) (y-1 alpha) (y-1 chi))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
(facts (neq b-0 a) (neq a b-0) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0
trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand resp 4) (exp (gen) y-1) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b-0 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l-1 alpha))
(exp (gen) (mul chi y-1))))))))
(label 95)
(parent 74)
(unrealized (0 0) (1 3) (6 0) (7 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
(w expt) (l-0 x-0 y l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-1) (x x-0) (beta l)
(eta (mul x w l-0 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-1) (chi (mul x w l-0)))
(deflistener (cat (exp (gen) l-1) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-1))
(deflistener
(cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-1)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-1) (y l) (y (mul x w l-0)) (y l-1))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-1))
(facts (neq b self) (neq self b) (undisclosed l-1) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 5 ltx-gen 3) (exp (gen) l-2) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y))))
(send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w l-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-1)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-0 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-1) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-1))
(exp (gen) (mul x w l-0 y)))))))
((recv (cat (exp (gen) l-1) (one)))
(send (cat (exp (gen) l-1) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-1)))
(send
(sig (body self (exp (gen) l-1) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))
(send (cat (exp (gen) l-1) (mul x w l-0 (rec x-0) y (rec l-1))))))
(label 96)
(parent 74)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb data)
(b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x rndx) (w expt)
(l-1 x-0 y l-2 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w l-1 (rec x-0) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w l-1)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2))))
(defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
(priv-stor priv-stor-1) (l l-2))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 2) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0 l-2)
(uniq-gen x-0 y)
(absent (x-0 l) (x-0 l-0) (y l) (y l-0) (y (mul x w l-1)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-2) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w l-1 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w l-1 (rec x-0) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w l-1 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w l-1))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w l-1 y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2))))
(send (cat (exp (gen) l-2) (mul x w l-1 (rec x-0) y (rec l-2)))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv self-0 l-2)))
(send
(sig (body self-0 (exp (gen) l-2) (pubk "sig" self-0))
(privk "sig" self-0)))))
(label 97)
(parent 74)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (5 0))
((3 3) (6 0)) ((4 1) (1 0)) ((4 1) (7 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 1) (0 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 98)
(parent 82)
(unrealized (6 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (7 0)) ((2 2) (1 1))
((3 3) (5 0)) ((3 3) (6 0)) ((4 1) (1 0)) ((4 2) (3 1))
((5 1) (1 3)) ((6 1) (0 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (5 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 99)
(parent 82)
(unrealized (6 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (1 3))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 1) (7 0))
((5 2) (4 0)) ((6 1) (0 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(precur (4 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 100)
(parent 89)
(unrealized (6 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l l-0 x y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (7 0)) ((2 2) (1 1))
((3 3) (1 3)) ((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0))
((5 2) (4 0)) ((6 1) (0 0)) ((7 1) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y x))
(precur (4 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))) (recv (cat na self b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 101)
(parent 89)
(unrealized (6 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (6 0))
((3 3) (7 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 1) (0 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))) (0 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))))
(label 102)
(parent 90)
(unrealized (7 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-1) (beta l-0)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l) (chi (mul x w x-0)))
(deflistener (cat (exp (gen) l) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a b) (b b-0) (priv-stor priv-stor)
(l l-0) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (7 0)) ((2 2) (1 1))
((3 3) (0 0)) ((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 2) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y (mul x w x-0)) (y l-0) (x-2 beta)
(x-2 l-0))
(precur (4 0) (6 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b b-0) (neq b-0 b) (neq b self) (neq self b)
(undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (3 0)) ((2 1) (7 0)) ((5 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 8 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 b b-0 (exp (gen) x-2)))))
(label 103)
(parent 91)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(beta expt) (x rndx) (w expt) (x-0 x-1 y x-2 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a self) (b b-0) (priv-stor priv-stor-0)
(l l-0) (x x-2) (beta beta))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 1) (7 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 2) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y (mul x w x-0)) (y l-0) (x-2 beta)
(x-2 l-0))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq self b-0) (neq b-0 self) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)) ((5 1) (7 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 8 5 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0)))
(send (cat na-0 self b-0 (exp (gen) x-2)))))
(label 104)
(parent 91)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 rndx) (beta expt)
(x rndx) (w expt) (x-0 x-1 y x-2 l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-1) (beta l)
(eta (mul x w x-0 (rec x-1) y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w x-0)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(defstrand init 3 (na na-0) (a a) (b b-0) (priv-stor priv-stor-1)
(l l-1) (x x-2) (beta beta))
(defstrand ltx-gen 2 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 2) (6 0)) ((8 1) (7 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb na-0 l l-0 l-1)
(uniq-gen x-1 y x-2)
(absent (x-1 l) (x-1 l-0) (y l) (y l-0) (y (mul x w x-0)) (x-2 beta)
(x-2 l-1))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0) (pv a l-1))
(facts (neq a b-0) (neq b-0 a) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)) ((8 1) (7 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w x-0 y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-1)))
(recv
(cat (exp (gen) (mul x w x-0 (rec x-1) y))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w x-0))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w x-0 y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2))))
(send (cat (exp (gen) x-2) (mul x w x-0 (rec x-1) y (rec x-2)))))
((load priv-stor-1 (cat pt-3 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) beta) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x-2))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv a l-1)))))
(label 105)
(parent 91)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l) (x x-0) (beta l-0)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l-0) (y y-0) (alpha l) (chi (mul x w y)))
(deflistener (cat (exp (gen) l) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b)
(priv-stor priv-stor) (l l-0) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (7 0)) ((2 2) (1 1))
((3 3) (0 0)) ((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 3) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 (mul x w y)) (y-0 l-0)
(y-1 alpha) (y-1 chi) (y-1 l-0))
(precur (4 0) (6 0))
(gen-st (pv b l-0) (pv self l))
(facts (neq b a) (neq a b) (neq b self) (neq self b) (undisclosed l)
(undisclosed l-0))
(leads-to ((2 1) (3 0)) ((2 1) (7 0)) ((5 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 8 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l)))
(recv
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l)))
(send
(sig (body self (exp (gen) l) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor (cat pt-0 (pv b l-0)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi y-1))))))))
(label 106)
(parent 95)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-0 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self)
(priv-stor priv-stor-0) (l l-0) (y y-1) (alpha alpha) (chi chi))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 1) (7 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 3) (6 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 (mul x w y)) (y-0 l-0)
(y-1 alpha) (y-1 chi) (y-1 l-0))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq self a) (neq a self) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)) ((5 1) (7 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 8 5 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a self (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a self
(hash (exp (gen) (mul alpha l-0))
(exp (gen) (mul chi y-1))))))))
(label 107)
(parent 95)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
(b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 rndx)
(alpha chi expt) (x rndx) (w expt) (y x-0 y-0 y-1 l-1 rndx))
(deflistener
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta l)
(eta (mul x w y (rec x-0) y-0)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha l-0) (chi (mul x w y)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener
(cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
(priv-stor priv-stor-1) (l l-1))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (0 0))
((3 3) (6 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 2) (4 0))
((6 1) (1 3)) ((7 3) (6 0)) ((8 1) (7 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb nb-0 l l-0 l-1)
(uniq-gen x-0 y-0 y-1)
(absent (x-0 l) (x-0 l-0) (y-0 l) (y-0 l-0) (y-0 (mul x w y))
(y-1 alpha) (y-1 chi) (y-1 l-1))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
(facts (neq b-0 a) (neq a b-0) (neq b self) (neq self b)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)) ((8 1) (7 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y y-0)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x-0)))
(recv
(cat (exp (gen) (mul x w y (rec x-0) y-0))
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w y))))
(send
(cat (exp (gen) y-0)
(enc na nb self b
(hash (exp (gen) (mul l l-0))
(exp (gen) (mul x w y y-0)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul x w y (rec x-0) y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b-0 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul alpha l-1))
(exp (gen) (mul chi y-1)))))))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
(label 108)
(parent 95)
(unrealized (0 0) (1 3) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(deflistener (cat (exp (gen) l) l-0))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 2) (1 1)) ((3 3) (6 0))
((3 3) (7 0)) ((4 1) (3 1)) ((5 1) (1 0)) ((5 1) (8 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 1) (0 0)) ((8 1) (7 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) l-0))
(exp (gen) (mul l l-0)) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
(label 109)
(parent 102)
(unrealized (7 0) (8 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-um
(vars (ignore ignore-0 mesg) (na nb data) (b self name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l l-0 x rndx)
(w expt) (y rndx))
(deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(defstrand init 4 (na na) (nb nb) (a self) (b b)
(priv-stor priv-stor-0) (l l-0) (x x) (beta l) (eta (mul w y)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
(l l))
(defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x w)))
(deflistener (cat (exp (gen) l-0) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(deflistener (cat (exp (gen) y) w))
(deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(deflistener (cat (exp (gen) l-0) l))
(precedes ((1 2) (3 2)) ((2 1) (3 0)) ((2 1) (8 0)) ((2 2) (1 1))
((3 3) (6 0)) ((3 3) (7 0)) ((4 1) (3 1)) ((5 1) (1 0))
((5 2) (4 0)) ((6 1) (1 3)) ((7 1) (0 0)) ((8 1) (7 0)))
(non-orig (privk "sig" b))
(uniq-orig na nb l l-0)
(uniq-gen x y)
(absent (x l) (x l-0) (y l) (y l-0) (y (mul x w)))
(precur (4 0) (6 0))
(gen-st (pv b l) (pv self l-0))
(facts (neq b self) (neq self b) (undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (3 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l-0) l))
(exp (gen) (mul l l-0)) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
(send (cat na self b (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((load priv-stor (cat pt ignore))
(stor priv-stor (cat pt-0 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))
(recv (cat na self b (exp (gen) (mul x w))))
(send
(cat (exp (gen) y)
(enc na nb self b
(hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
((recv (cat (exp (gen) l-0) (one)))
(send (cat (exp (gen) l-0) (one))))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y))))
(send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))
((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
(label 110)
(parent 102)
(unrealized (7 0) (8 0))
(dead)
(comment "empty cohort"))
(comment "Nothing left to do")