cpsa-4.4.4: tst/dhcr_umx_implicit_auth.tst
(herald "DHCR: unified model (UM) with criss-cross key derivation"
(bound 30) (limit 4000) (algebra diffie-hellman))
(comment "CPSA 4.4.4")
(comment "All input read from tst/dhcr_umx_implicit_auth.scm")
(comment "Step count limited to 4000")
(comment "Strand count bounded at 30")
(defprotocol dhcr-umx 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 eta)) (exp (gen) (mul x beta))))))
(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 y alpha)) (exp (gen) (mul l 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 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-umx
(vars (na nb na-0 nb-0 data) (a b a-0 b-0 name) (pt pt-0 pval)
(priv-stor priv-stor-0 locn) (ltxa ltxb x y rndx)
(eta chi beta alpha expt))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha alpha) (chi chi))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l ltxa) (x x) (beta beta) (eta eta))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0)
(uniq-gen x y)
(absent (x ltxa) (x beta) (y ltxb) (y chi) (y alpha))
(facts
(eq (hash (exp (gen) (mul ltxa eta)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul y alpha)) (exp (gen) (mul ltxb chi))))
(neq ltxa ltxb) (undisclosed ltxa) (undisclosed beta)
(undisclosed ltxb) (undisclosed alpha))
(goals
(forall
((zi zr strd) (ltxa ltxb x y rndx) (eta chi beta alpha expt)
(a b a-0 b-0 name))
(implies
(and (p "init" zi 4) (p "init" "l" zi ltxa)
(p "init" "beta" zi beta) (p "init" "x" zi x)
(p "init" "eta" zi eta) (p "init" "a" zi a)
(p "init" "b" zi b-0) (p "resp" zr 4) (p "resp" "l" zr ltxb)
(p "resp" "alpha" zr alpha) (p "resp" "y" zr y)
(p "resp" "chi" zr chi) (p "resp" "a" zr a-0)
(p "resp" "b" zr b)
(fact eq
(hash (exp (exp (gen) eta) ltxa) (exp (exp (gen) beta) x))
(hash (exp (exp (gen) alpha) y) (exp (exp (gen) chi) ltxb)))
(non (privk "sig" b)) (non (privk "sig" a))
(fact neq ltxa ltxb) (fact undisclosed ltxa)
(fact undisclosed beta) (fact undisclosed ltxb)
(fact undisclosed alpha))
(and (= a-0 a) (= b-0 b) (= beta ltxb) (= alpha ltxa)))))
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0))) (recv (cat na a-0 b (exp (gen) chi)))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul ltxb chi)))))))
((load priv-stor-0 (cat pt-0 (pv a ltxa)))
(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)))
(recv
(cat (exp (gen) eta)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul ltxa eta))
(exp (gen) (mul x beta))))))))
(label 0)
(realized)
(origs (na-0 (1 2)) (nb (0 3)))
(ugens (x (1 2)) (y (0 3)))
(comment "Not closed under rules"))
(defskeleton dhcr-umx
(vars (na nb na-0 nb-0 data) (a b a-0 b-0 name) (pt pt-0 pval)
(priv-stor priv-stor-0 locn) (ltxa y rndx) (alpha expt)
(ltxb x rndx) (beta expt))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha alpha) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l ltxa) (x x) (beta beta)
(eta (mul (rec ltxa) y alpha)))
(precedes ((0 3) (1 3)) ((1 2) (0 2)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0)
(uniq-gen y x)
(absent (y alpha) (y (mul (rec ltxb) x beta)) (y ltxb) (x ltxa)
(x beta))
(gen-st (pv a ltxa) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta))))
(neq ltxa ltxb) (undisclosed ltxa) (undisclosed beta)
(undisclosed ltxb) (undisclosed alpha))
(rule eq-means-= fact-init-neq0 fact-resp-neq0 gen-st-ltx-disclose-0)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (pv a ltxa)))
(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)))
(recv
(cat (exp (gen) (mul (rec ltxa) y alpha))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta))))))))
(label 1)
(parent 0)
(unrealized (0 0) (1 0))
(origs (na-0 (1 2)) (nb (0 3)))
(ugens (x (1 2)) (y (0 3)))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (y rndx)
(alpha expt) (ltxb x rndx) (beta expt) (l rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha alpha) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta beta)
(eta (mul y alpha (rec l))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y alpha) (y (mul (rec ltxb) x beta)) (y ltxb) (x beta) (x l))
(gen-st (pv a l) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta))))
(neq l ltxb) (undisclosed l) (undisclosed beta) (undisclosed ltxb)
(undisclosed alpha))
(leads-to ((2 1) (1 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-0 (cat pt-0 (pv a l))) (1 0))
(strand-map 0 1)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(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)))
(recv
(cat (exp (gen) (mul y alpha (rec l)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l)))))
(label 2)
(parent 1)
(unrealized (0 0) (1 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 3 0 resp 4) (exp (gen) y-0) (1 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) l) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l)))))
(label 3)
(parent 2)
(unrealized (0 0) (0 1) (1 3))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (y rndx)
(alpha expt) (ltxb x rndx) (beta expt) (l rndx) (w expt))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha alpha) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta beta)
(eta (mul y alpha (rec l))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) (mul y alpha (rec l) (rec w))) w))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y alpha) (y (mul (rec ltxb) x beta)) (y ltxb) (x beta) (x l))
(precur (3 0))
(gen-st (pv a l) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul y alpha)) (exp (gen) (mul x beta))))
(neq l ltxb) (undisclosed l) (undisclosed beta) (undisclosed ltxb)
(undisclosed alpha))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul y alpha (rec l) (rec w))) w))
(exp (gen) (mul y alpha (rec l))) (1 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) alpha) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(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)))
(recv
(cat (exp (gen) (mul y alpha (rec l)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) (mul y alpha (rec l) (rec w))) w))
(send (cat (exp (gen) (mul y alpha (rec l) (rec w))) w))))
(label 4)
(parent 2)
(unrealized (0 0) (3 0))
(comment "7 in cohort - 7 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (l rndx) (chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 3 0 resp 4)
(enc na-0 nb-0 a-0 b-0
(hash (exp (gen) (mul l y-0)) (exp (gen) (mul l-2 chi)))) (1 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b (exp (gen) (mul chi l-0)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l)))))
(label 5)
(parent 3)
(unrealized (0 0) (0 1) (1 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))) (1 3))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) l) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))))
(label 6)
(parent 3)
(unrealized (0 0) (0 1) (3 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (ltxb x rndx) (beta expt)
(l rndx) (beta-0 expt) (l-0 rndx) (w expt) (x-0 y l-1 x-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul l-0 w x-0))
(chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta beta)
(eta (mul l-0 w x-0 y (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener
(cat (exp (gen) x-1) (mul l-0 w x-0 y (rec l-1) (rec x-1))))
(defstrand init 3 (na na-1) (a a-1) (b b-1) (priv-stor priv-stor-1)
(l l) (x x-1) (beta beta-0))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-1)
(uniq-gen x y x-1)
(absent (x beta) (x l-1) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul l-0 w x-0)) (x-1 l) (x-1 beta-0))
(precur (3 0))
(gen-st (pv a l-1) (pv b ltxb) (pv a-1 l))
(facts (neq a-1 b-1) (neq a b-0) (neq b a-0) (neq b-1 a-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l-0 w x-0 y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l-0 w x-0 y)) (exp (gen) (mul x beta))))
(neq l-1 ltxb) (undisclosed l-1) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l-0 w x-0)))
(leads-to ((2 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-1) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l-0 w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l-0 w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l-0 w x-0 y (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l-0 w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) x-1) (mul l-0 w x-0 y (rec l-1) (rec x-1))))
(send
(cat (exp (gen) x-1) (mul l-0 w x-0 y (rec l-1) (rec x-1)))))
((load priv-stor-1 (cat pt-2 (pv a-1 l)))
(recv
(sig (body b-1 (exp (gen) beta-0) (pubk "sig" b-1))
(privk "sig" b-1)))
(send (cat na-1 a-1 b-1 (exp (gen) x-1)))))
(label 7)
(parent 4)
(unrealized (0 0) (1 3) (3 0) (4 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (ltxb rndx)
(w expt) (l rndx) (beta expt) (x y l-0 x-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul w l x)) (chi (mul (rec ltxb) beta x-0)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta beta)
(eta (mul w l x y (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) x-0) (mul w l x y (rec l-0) (rec x-0))))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-0)
(uniq-gen y x-0)
(absent (y (mul (rec ltxb) beta x-0)) (y ltxb) (y (mul w l x))
(x-0 beta) (x-0 l-0))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w l x y)) (exp (gen) (mul beta x-0)))
(hash (exp (gen) (mul w l x y)) (exp (gen) (mul beta x-0))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul w l x)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 4 1 init 3) (exp (gen) x-1) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul w l x)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) beta x-0))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w l x y))
(exp (gen) (mul beta x-0)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul w l x y (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w l x y))
(exp (gen) (mul beta x-0)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) x-0) (mul w l x y (rec l-0) (rec x-0))))
(send (cat (exp (gen) x-0) (mul w l x y (rec l-0) (rec x-0))))))
(label 8)
(parent 4)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (ltxb x rndx)
(beta expt) (l rndx) (w expt) (y l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul l w)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul l w y (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (gen) (mul l w y (rec l-0))))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-0)
(uniq-gen x y)
(absent (x beta) (x l-0) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul l w)))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test
(contracted (y-0 y) (alpha (mul l w)) (l-1 l-0)
(w-0 (mul l w y (rec l-0))) (y-1 y) (l l-0)
(w (mul l w y (rec l-0)))) (gen) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y)) (exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w y (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y)) (exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (gen) (mul l w y (rec l-0))))
(send (cat (gen) (mul l w y (rec l-0))))))
(label 9)
(parent 4)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (ltxb x rndx) (beta expt)
(l rndx) (alpha chi expt) (l-0 rndx) (w expt) (y y-0 l-1 y-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y-0) (alpha (mul l-0 w y))
(chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta beta)
(eta (mul l-0 w y y-0 (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener
(cat (exp (gen) y-1) (mul l-0 w y y-0 (rec l-1) (rec y-1))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b b-1)
(priv-stor priv-stor-1) (l l) (y y-1) (alpha alpha) (chi chi))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 3) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-1)
(uniq-gen x y-0 y-1)
(absent (x beta) (x l-1) (y-0 (mul (rec ltxb) x beta)) (y-0 ltxb)
(y-0 (mul l-0 w y)) (y-1 l) (y-1 alpha) (y-1 chi))
(precur (3 0))
(gen-st (pv a l-1) (pv b ltxb) (pv b-1 l))
(facts (neq b-1 a-1) (neq a b-0) (neq b a-0) (neq a-1 b-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l-0 w y y-0)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l-0 w y y-0)) (exp (gen) (mul x beta))))
(neq l-1 ltxb) (undisclosed l-1) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l-0 w y)))
(leads-to ((2 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) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l-0 w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul l-0 w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l-0 w y y-0 (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l-0 w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y-1) (mul l-0 w y y-0 (rec l-1) (rec y-1))))
(send
(cat (exp (gen) y-1) (mul l-0 w y y-0 (rec l-1) (rec y-1)))))
((load priv-stor-1 (cat pt-2 (pv b-1 l)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1))) (recv (cat na-1 a-1 b-1 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 b-1
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul l chi))))))))
(label 10)
(parent 4)
(unrealized (0 0) (1 3) (3 0) (4 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (mul l w)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) w))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (mul l w)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed (mul l w)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 4 0 resp 4) (exp (gen) y-0) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) (mul l w)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
(label 11)
(parent 4)
(unrealized (0 0) (0 1) (1 3))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (b a b-0 self name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (ltxb x rndx)
(beta w expt) (l y l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul w l l)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a self) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul w l l y (rec l-0))))
(deflistener (cat (exp (gen) l-0) (mul w l l y (rec l-0) (rec l-0))))
(defstrand ltx-gen 3 (ignore ignore) (self self)
(priv-stor priv-stor-0) (l l-0))
(precedes ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (1 3)) ((3 1) (1 0))
((3 2) (2 0)))
(non-orig (privk "sig" b) (privk "sig" self))
(uniq-orig nb na-0 l-0)
(uniq-gen x y)
(absent (x beta) (x l-0) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul w l l)))
(precur (2 0))
(gen-st (pv b ltxb) (pv self l-0))
(facts (neq self b-0) (neq b a) (neq b-0 self) (neq a b)
(eq (hash (exp (gen) (mul w l l y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul w l l y)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul w l l)))
(leads-to ((3 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 2 4 ltx-gen 3) (exp (gen) l-1) (3 0))
(strand-map 0 1 3 2)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a (exp (gen) (mul w l l)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul w l l y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 (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)))
(recv
(cat (exp (gen) (mul w l l y (rec l-0)))
(enc na-0 nb-0 self b-0
(hash (exp (gen) (mul w l l y))
(exp (gen) (mul x beta)))))))
((recv (cat (exp (gen) l-0) (mul w l l y (rec l-0) (rec l-0))))
(send (cat (exp (gen) l-0) (mul w l l y (rec l-0) (rec l-0)))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv self l-0)))
(send
(sig (body self (exp (gen) l-0) (pubk "sig" self))
(privk "sig" self)))))
(label 12)
(parent 4)
(unrealized (0 0) (1 3) (2 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
(a b a-0 b-0 self name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (ltxb x rndx) (beta expt)
(l rndx) (w expt) (l-0 y l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul l w l-0)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta beta)
(eta (mul l w l-0 y (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener
(cat (exp (gen) l-2) (mul l w l-0 y (rec l-1) (rec l-2))))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1 l-2)
(uniq-gen x y)
(absent (x beta) (x l-1) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul l w l-0)))
(precur (3 0))
(gen-st (pv a l-1) (pv b ltxb))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w l-0 y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w l-0 y)) (exp (gen) (mul x beta))))
(neq l-1 ltxb) (undisclosed l-1) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w l-0)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 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) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w l-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w l-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w l-0 y (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w l-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) l-2) (mul l w l-0 y (rec l-1) (rec l-2))))
(send (cat (exp (gen) l-2) (mul l w l-0 y (rec l-1) (rec l-2)))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-2)))
(send
(sig (body self (exp (gen) l-2) (pubk "sig" self))
(privk "sig" self)))))
(label 13)
(parent 4)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l) (chi (mul x (rec l-0) l-1)))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta l-1) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-1)
(uniq-gen y x)
(absent (y l) (y (mul x (rec l-0) l-1)) (y l-0) (x l) (x l-1))
(gen-st (pv b l-0) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul x l-1)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-1)))) (neq l l-0)
(undisclosed l) (undisclosed l-1) (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-1) (pubk "sig" b)) (privk "sig" b)) (1 1))
(strand-map 0 1 2)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x (rec l-0) l-1))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))))
(label 14)
(parent 5)
(unrealized (0 0) (0 1) (0 2))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(precedes ((0 3) (4 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) l) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))))
(label 15)
(parent 6)
(unrealized (0 0) (0 1) (4 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 data) (a b a-0 b-0 b-1 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (ltxb x rndx)
(beta beta-0 expt) (l rndx) (w expt) (x-0 y x-1 l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul l w x-0)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul l w x-0 y (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener
(cat (exp (gen) x-1) (mul l w x-0 y (rec x-1) (rec l-0))))
(defstrand init 3 (na na-1) (a a) (b b-1) (priv-stor priv-stor-0)
(l l-0) (x x-1) (beta beta-0))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
((3 1) (1 3)) ((4 2) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-0)
(uniq-gen x y x-1)
(absent (x beta) (x l-0) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul l w x-0)) (x-1 beta-0) (x-1 l-0))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb))
(facts (neq a b-1) (neq a b-0) (neq b a-0) (neq b-1 a) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l w x-0 y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w x-0 y)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w x-0)))
(leads-to ((2 1) (1 0)) ((2 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 5 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-2 (pv a-1 l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w x-0 y (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) x-1) (mul l w x-0 y (rec x-1) (rec l-0))))
(send (cat (exp (gen) x-1) (mul l w x-0 y (rec x-1) (rec l-0)))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body b-1 (exp (gen) beta-0) (pubk "sig" b-1))
(privk "sig" b-1))) (send (cat na-1 a b-1 (exp (gen) x-1)))))
(label 16)
(parent 7)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 na-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (ltxb x rndx)
(beta beta-0 expt) (l rndx) (w expt) (x-0 y l-0 x-1 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y) (alpha (mul l w x-0)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul l w x-0 y (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener
(cat (exp (gen) x-1) (mul l w x-0 y (rec l-0) (rec x-1))))
(defstrand init 3 (na na-1) (a a-1) (b b-1) (priv-stor priv-stor-1)
(l l-1) (x x-1) (beta beta-0))
(defstrand ltx-gen 2 (ignore ignore-0) (self a-1)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-0 l-1)
(uniq-gen x y x-1)
(absent (x beta) (x l-0) (y (mul (rec ltxb) x beta)) (y ltxb)
(y (mul l w x-0)) (x-1 beta-0) (x-1 l-1))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb) (pv a-1 l-1))
(facts (neq a-1 b-1) (neq a b-0) (neq b a-0) (neq b-1 a-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l w x-0 y)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w x-0 y)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w x-0)))
(leads-to ((2 1) (1 0)) ((5 1) (4 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-2 (pv a-1 l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w x-0 y (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w x-0 y))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) x-1) (mul l w x-0 y (rec l-0) (rec x-1))))
(send (cat (exp (gen) x-1) (mul l w x-0 y (rec l-0) (rec x-1)))))
((load priv-stor-1 (cat pt-2 (pv a-1 l-1)))
(recv
(sig (body b-1 (exp (gen) beta-0) (pubk "sig" b-1))
(privk "sig" b-1))) (send (cat na-1 a-1 b-1 (exp (gen) x-1))))
((load priv-stor-1 (cat pt-3 ignore-0))
(stor priv-stor-1 (cat pt-2 (pv a-1 l-1)))))
(label 17)
(parent 7)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (ltxb x rndx) (beta alpha chi expt)
(l rndx) (w expt) (y y-0 y-1 l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y-0) (alpha (mul l w y)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul l w y y-0 (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener
(cat (exp (gen) y-1) (mul l w y y-0 (rec y-1) (rec l-0))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b a)
(priv-stor priv-stor-0) (l l-0) (y y-1) (alpha alpha) (chi chi))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
((3 1) (1 3)) ((4 3) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-0)
(uniq-gen x y-0 y-1)
(absent (x beta) (x l-0) (y-0 (mul (rec ltxb) x beta)) (y-0 ltxb)
(y-0 (mul l w y)) (y-1 alpha) (y-1 chi) (y-1 l-0))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb))
(facts (neq a a-1) (neq a b-0) (neq b a-0) (neq a-1 a) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l w y y-0)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w y y-0)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w y)))
(leads-to ((2 1) (1 0)) ((2 1) (4 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation channel-test (displaced 5 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-2 (pv b-1 l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w y y-0 (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y-1) (mul l w y y-0 (rec y-1) (rec l-0))))
(send (cat (exp (gen) y-1) (mul l w y y-0 (rec y-1) (rec l-0)))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1))) (recv (cat na-1 a-1 a (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 a
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul chi l-0))))))))
(label 18)
(parent 10)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (ltxb x rndx)
(beta alpha chi expt) (l rndx) (w expt) (y y-0 l-0 y-1 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l ltxb) (y y-0) (alpha (mul l w y)) (chi (mul (rec ltxb) x beta)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta beta)
(eta (mul l w y y-0 (rec l-0))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener
(cat (exp (gen) y-1) (mul l w y y-0 (rec l-0) (rec y-1))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b b-1)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi))
(defstrand ltx-gen 2 (ignore ignore-0) (self b-1)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 3) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-0 l-1)
(uniq-gen x y-0 y-1)
(absent (x beta) (x l-0) (y-0 (mul (rec ltxb) x beta)) (y-0 ltxb)
(y-0 (mul l w y)) (y-1 alpha) (y-1 chi) (y-1 l-1))
(precur (3 0))
(gen-st (pv a l-0) (pv b ltxb) (pv b-1 l-1))
(facts (neq b-1 a-1) (neq a b-0) (neq b a-0) (neq a-1 b-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul l w y y-0)) (exp (gen) (mul x beta)))
(hash (exp (gen) (mul l w y y-0)) (exp (gen) (mul x beta))))
(neq l-0 ltxb) (undisclosed l-0) (undisclosed beta)
(undisclosed ltxb) (undisclosed (mul l w y)))
(leads-to ((2 1) (1 0)) ((5 1) (4 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-2 (pv b-1 l-1))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b ltxb)))
(recv
(sig (body a-0 (exp (gen) (mul l w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec ltxb) x beta))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul l w y y-0 (rec l-0)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y y-0))
(exp (gen) (mul x beta)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y-1) (mul l w y y-0 (rec l-0) (rec y-1))))
(send (cat (exp (gen) y-1) (mul l w y y-0 (rec l-0) (rec y-1)))))
((load priv-stor-1 (cat pt-2 (pv b-1 l-1)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1))) (recv (cat na-1 a-1 b-1 (exp (gen) chi)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 b-1
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul chi l-1)))))))
((load priv-stor-1 (cat pt-3 ignore-0))
(stor priv-stor-1 (cat pt-2 (pv b-1 l-1)))))
(label 19)
(parent 10)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (l rndx) (alpha chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha alpha) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta (mul chi l-0)) (eta (mul (rec l) alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (mul (rec l) alpha)))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l)
(uniq-gen y x)
(absent (y alpha) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul alpha y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed alpha))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 4 0 resp 4)
(enc na-0 nb-0 a-0 b-0
(hash (exp (gen) (mul y-0 alpha)) (exp (gen) (mul l-2 chi))))
(1 3))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b (exp (gen) (mul chi l-0)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (mul (rec l) alpha)))
(send (cat (exp (gen) y) (mul (rec l) alpha)))))
(label 20)
(parent 11)
(unrealized (0 0) (0 1) (1 1) (1 3) (3 0))
(comment "5 in cohort - 5 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 priv-stor-1 locn)
(l l-0 y rndx) (alpha expt) (l-1 rndx) (chi expt)
(y-0 y-1 x l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l) (y y-0) (alpha (mul y alpha)) (chi (mul (rec l) l-1 chi x)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x) (beta (mul l-1 chi))
(eta (mul (rec l-0) y alpha y-0)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) y-0) (mul (rec l-0) y alpha)))
(defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-1) (l l-2) (y y-1)
(alpha (mul y alpha y-0 (rec y-1))) (chi (mul l-1 chi x (rec l-2))))
(precedes ((0 3) (3 0)) ((0 3) (4 1)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 3) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-0 l-0)
(uniq-gen y-0 y-1 x)
(absent (y-0 (mul (rec l) l-1 chi x)) (y-0 l) (y-0 (mul y alpha))
(y-1 (mul y alpha y-0 (rec y-1))) (y-1 (mul l-1 chi x (rec l-2)))
(y-1 l-2) (x l-0) (x (mul l-1 chi)))
(precur (3 0))
(gen-st (pv a l-0) (pv b l) (pv b-0 l-2))
(facts (neq b a-0) (neq a b-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y alpha y-0)) (exp (gen) (mul l-1 chi x)))
(hash (exp (gen) (mul y alpha y-0)) (exp (gen) (mul l-1 chi x))))
(neq l-0 l) (undisclosed l-0) (undisclosed (mul l-1 chi))
(undisclosed l) (undisclosed (mul y alpha)))
(leads-to ((2 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 encryption-test (added-strand resp 4)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha y-0)) (exp (gen) (mul l-1 chi x))))
(1 3))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a-0 (exp (gen) (mul y alpha)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec l) l-1 chi x))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul y alpha y-0))
(exp (gen) (mul l-1 chi x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body b-0 (exp (gen) (mul l-1 chi)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-0) y alpha y-0))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha y-0))
(exp (gen) (mul l-1 chi x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y-0) (mul (rec l-0) y alpha)))
(send (cat (exp (gen) y-0) (mul (rec l-0) y alpha))))
((load priv-stor-1 (cat pt-2 (pv b-0 l-2)))
(recv
(sig
(body a (exp (gen) (mul y alpha y-0 (rec y-1)))
(pubk "sig" a)) (privk "sig" a)))
(recv (cat na-0 a b-0 (exp (gen) (mul l-1 chi x (rec l-2)))))
(send
(cat (exp (gen) y-1)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y alpha y-0))
(exp (gen) (mul l-1 chi x))))))))
(label 21)
(parent 11)
(unrealized (0 0) (1 3) (3 0) (4 0) (4 1))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (mul l w)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) w))
(deflistener
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(precedes ((0 3) (3 0)) ((0 3) (4 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (mul l w)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed (mul l w)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))) (1 3))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) (mul l w)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(send
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))))
(label 22)
(parent 11)
(unrealized (0 0) (0 1) (4 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(l y x l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta y))
(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 ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
((3 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y l) (y x) (y l-0) (x l) (x l-0))
(gen-st (pv b l-0) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))) (neq l l-0)
(undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((3 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 4 3 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (0 0))
(strand-map 0 1 2 3)
(traces
((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) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))))))
((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) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))))))
((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 23)
(parent 14)
(unrealized (0 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul x l-0 (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta l-0) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-0))
(defstrand ltx-gen 2 (ignore ignore-1) (self b) (priv-stor priv-stor)
(l l-1))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 2) (1 1))
((4 1) (0 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y l) (y (mul x l-0 (rec l-1))) (y l-1) (x l) (x l-0))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))) (neq l l-1)
(undisclosed l) (undisclosed l-0) (undisclosed l-1))
(leads-to ((2 1) (1 0)) ((4 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 b l-1))) (0 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l-0 (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-0 (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) y)
(enc na nb a b
(hash (exp (gen) (mul l y)) (exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-4 ignore-1))
(stor priv-stor (cat pt (pv b l-1)))))
(label 24)
(parent 14)
(unrealized (0 1) (0 2))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) l) y))
(precedes ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) l) y))
(exp (gen) (mul l y)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) l) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) l) y)) (send (cat (exp (gen) l) y))))
(label 25)
(parent 15)
(unrealized (0 0) (0 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) y) l))
(precedes ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (3 0)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y l) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener (cat (exp (gen) y) l))
(exp (gen) (mul l y)) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) l) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul l y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
(label 26)
(parent 15)
(unrealized (0 0) (0 1) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (chi expt) (l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-1) (x x) (beta (mul chi l)) (eta (mul y l-1)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-1))
(x (mul chi l)) (x l-1))
(precur (3 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (displaced 4 2 ltx-gen 2) l-2 (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul l-1 l-1)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul chi l)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-1))
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1))))
(label 27)
(parent 20)
(unrealized (0 0) (0 1) (1 1) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (chi expt) (l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-1) (x x) (beta (mul chi l)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (one)))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y l-1) (x (mul chi l))
(x l-1))
(precur (3 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi 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 (contracted (l-2 l-1) (alpha l-1)) (one) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul chi l)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
(label 28)
(parent 20)
(unrealized (0 0) (0 1) (1 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a self name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l y x l-0 l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-2)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-1) (x x) (beta (mul chi l)) (eta (mul y l-2)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-2))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (3 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-1 l-2)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-2))
(x (mul chi l)) (x l-1))
(precur (3 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-2)))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 2) l-2 (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul l-1 l-2)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul chi l)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-2))
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-2)) (send (cat (exp (gen) y) l-2)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-2)))))
(label 29)
(parent 20)
(unrealized (0 0) (0 1) (1 1) (3 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (alpha chi expt) (l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul alpha l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-1) (x x) (beta (mul chi l)) (eta (mul alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) alpha))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-1)
(uniq-gen y x)
(absent (y (mul alpha l-1)) (y (mul chi l x (rec l-0))) (y l-0)
(x (mul chi l)) (x l-1) (l-1 alpha))
(precur (3 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul alpha y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul alpha l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation nonce-test (added-absence l-1 alpha) alpha (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul alpha l-1)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul chi l)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) alpha)) (send (cat (exp (gen) y) alpha))))
(label 30)
(parent 20)
(unrealized (0 0) (0 1) (1 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb data) (b a name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (l rndx) (alpha chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha alpha) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta (mul chi l-0)) (eta (mul (rec l) alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (mul (rec l) alpha)))
(deflistener l)
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
((3 1) (1 3)) ((4 1) (3 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l)
(uniq-gen y x)
(absent (y alpha) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul alpha y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed alpha))
(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 l) (mul (rec l) alpha) (3 0))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a (exp (gen) alpha) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b (exp (gen) (mul chi l-0)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (mul (rec l) alpha)))
(send (cat (exp (gen) y) (mul (rec l) alpha))))
((recv l) (send l)))
(label 31)
(parent 20)
(unrealized (0 0) (0 1) (1 1) (4 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (mul l w)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) w))
(deflistener
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(deflistener
(cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(precedes ((0 3) (3 0)) ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (mul l w)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed (mul l w)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation encryption-test
(added-listener
(cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))) (4 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) (mul l w)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))))
(label 32)
(parent 22)
(unrealized (0 0) (0 1) (5 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (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 ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (0 0)) ((2 2) (1 1))
((3 1) (1 0)) ((3 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y x) (y l) (y l-0) (x l) (x l-0))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))) (neq l-0 l)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (0 0)) ((3 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 4 ltx-gen 3)
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 3 2)
(traces
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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-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 33)
(parent 23)
(realized)
(shape)
(satisfies yes)
(maps
((0 1)
((ltxa l-0) (ltxb l) (x x) (y y) (eta y) (chi x) (beta l)
(alpha l-0) (a a) (b b) (a-0 a) (b-0 b) (na na) (nb nb)
(priv-stor priv-stor) (na-0 na) (nb-0 nb)
(priv-stor-0 priv-stor-0))))
(origs (l-0 (3 1)) (pt-2 (3 1)) (l (2 1)) (pt-0 (2 1)) (nb (0 3))
(na (1 2)))
(ugens (y (0 3)) (x (1 2))))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 1) (0 0))
((4 1) (1 0)) ((4 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((3 1) (0 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 5 ltx-gen 3)
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 4 2 3)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))))
(label 34)
(parent 24)
(unrealized (0 2))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi (mul x (rec l) l-1)))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x) (beta l-1) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-0 l-1)
(uniq-gen y x)
(absent (y (mul x (rec l) l-1)) (y l) (y l-0) (x l-0) (x l-1))
(precur (3 0))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l-1)))
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l-1))))
(neq l-0 l) (undisclosed l-0) (undisclosed l-1) (undisclosed l))
(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-1) (pubk "sig" b)) (privk "sig" b)) (1 1))
(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 (rec l) l-1))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))))
(label 35)
(parent 28)
(unrealized (0 0) (0 1) (0 2))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a self name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l y x l-0 l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-2)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-1) (x x) (beta (mul chi l)) (eta (mul y l-2)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-2))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-2))
(defstrand ltx-disclose 3 (self self) (priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (5 0)) ((5 2) (3 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-1 l-2)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-2))
(x (mul chi l)) (x l-1))
(precur (3 0))
(gen-st (pv b l-0) (pv a l-1) (pv self l-2))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-2)))
(leads-to ((2 1) (1 0)) ((4 1) (5 0)))
(rule fact-resp-neq0 gen-st-ltx-disclose-0 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-2 (3 0)
(ch-msg priv-stor-1 (cat pt-3 (pv self l-2))))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul l-1 l-2)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b (exp (gen) (mul chi l)) (pubk "sig" b))
(privk "sig" b))) (send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-2))
(enc na nb a b
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-2)) (send (cat (exp (gen) y) l-2)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-2))))
((load priv-stor-1 (cat pt-3 (pv self l-2)))
(stor priv-stor-1 (cat pt-4 "nil")) (send l-2)))
(label 36)
(parent 29)
(unrealized (0 0) (0 1) (1 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (alpha expt)
(y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha (mul alpha l-0)) (chi (mul x (rec l) l-1)))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x) (beta l-1) (eta (mul alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) y) alpha))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-0 l-1)
(uniq-gen y x)
(absent (y (mul alpha l-0)) (y (mul x (rec l) l-1)) (y l) (x l-0)
(x l-1) (l-0 alpha))
(precur (3 0))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y l-0)) (exp (gen) (mul x l-1)))
(hash (exp (gen) (mul alpha y l-0)) (exp (gen) (mul x l-1))))
(neq l-0 l) (undisclosed l-0) (undisclosed l-1) (undisclosed l)
(undisclosed (mul alpha 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-1) (pubk "sig" b)) (privk "sig" b)) (1 1))
(strand-map 0 1 2 3)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) (mul alpha l-0)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x (rec l) l-1))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y l-0))
(exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y l-0))
(exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y) alpha)) (send (cat (exp (gen) y) alpha)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))))
(label 37)
(parent 30)
(unrealized (0 0) (0 1) (0 2))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (one)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul (rec l) y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (rec l)))
(deflistener (hash (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(precedes ((0 3) (3 0)) ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (one)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))) (neq l l-1)
(undisclosed l) (undisclosed (mul chi l-0)) (undisclosed l-1)
(undisclosed (one)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 6 0 resp 4) (exp (gen) y-0) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv (sig (body a-0 (gen) (pubk "sig" a-0)) (privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (rec l)))
(send (cat (exp (gen) y) (rec l))))
((recv (hash (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) y) (exp (gen) (mul chi l-0 x))))))
(label 38)
(parent 32)
(unrealized (0 0) (1 3) (3 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx) (w-0 expt))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (mul l w)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) w))
(deflistener
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(deflistener
(cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul l w y (rec w-0))) w-0))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (mul l w)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0) (6 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed (mul l w)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test
(added-listener (cat (exp (gen) (mul l w y (rec w-0))) w-0))
(exp (gen) (mul l w y)) (5 0))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) (mul l w)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul l w y))
(exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul l w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul l w y (rec w-0))) w-0))
(send (cat (exp (gen) (mul l w y (rec w-0))) w-0))))
(label 39)
(parent 32)
(unrealized (0 0) (0 1) (6 0))
(comment "7 in cohort - 7 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x l)) l-0))
(precedes ((0 3) (1 3)) ((1 2) (5 0)) ((2 2) (1 1)) ((3 1) (0 0))
((3 1) (5 0)) ((4 1) (1 0)) ((4 2) (0 1)) ((5 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((3 1) (0 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 x l)) l-0))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x l)) l-0))
(send (cat (exp (gen) (mul x l)) l-0))))
(label 40)
(parent 34)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x (rec l-0))) l))
(precedes ((0 3) (1 3)) ((1 2) (5 0)) ((2 2) (1 1)) ((3 1) (0 0))
((4 1) (1 0)) ((4 2) (0 1)) ((5 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((3 1) (0 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 x (rec l-0))) l))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x (rec l-0))) l))
(send (cat (exp (gen) (mul x (rec l-0))) l))))
(label 41)
(parent 34)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-0))) x))
(precedes ((0 3) (1 3)) ((1 2) (5 0)) ((2 2) (1 1)) ((3 1) (0 0))
((4 1) (1 0)) ((4 2) (0 1)) ((5 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((3 1) (0 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 l (rec l-0))) x))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul l (rec l-0))) x))
(send (cat (exp (gen) (mul l (rec l-0))) x))))
(label 42)
(parent 34)
(unrealized (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha l) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (0 0)) ((4 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y x) (y l) (y l-0) (x l) (x l-0))
(precur (3 0))
(gen-st (pv b l-0) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))) (neq l l-0)
(undisclosed l) (undisclosed l-0))
(leads-to ((2 1) (1 0)) ((4 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 5 4 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (0 0))
(strand-map 0 1 2 3 4)
(traces
((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) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))))))
((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) y)
(enc na nb a b
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((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 43)
(parent 35)
(unrealized (0 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha l) (chi (mul x l-0 (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta l-0) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-0))
(defstrand ltx-gen 2 (ignore ignore-1) (self b) (priv-stor priv-stor)
(l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (1 1)) ((5 1) (0 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l-0 (rec l-1))) (y l) (y l-1) (x l) (x l-0))
(precur (3 0))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))) (neq l l-1)
(undisclosed l) (undisclosed l-0) (undisclosed l-1))
(leads-to ((2 1) (1 0)) ((5 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 b l-1))) (0 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l-0 (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-0 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l)) (exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-4 ignore-1))
(stor priv-stor (cat pt (pv b l-1)))))
(label 44)
(parent 35)
(unrealized (0 1) (0 2))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a self name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
(priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
(y x l l-0 l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha (mul l-0 l-1)) (chi (mul x (rec l) l-2)))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x) (beta l-2) (eta (mul y l-1)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) y) l-1))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-1))
(defstrand ltx-disclose 3 (self self) (priv-stor priv-stor-1) (l l-1))
(defstrand ltx-gen 3 (ignore ignore-1) (self b)
(priv-stor priv-stor-2) (l l-2))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (5 0)) ((5 2) (3 0)) ((6 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l-0 l-1 l-2)
(uniq-gen y x)
(absent (y (mul x (rec l) l-2)) (y l) (y (mul l-0 l-1)) (x l-0)
(x l-2))
(precur (3 0))
(gen-st (pv b l) (pv a l-0) (pv self l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0 l-1)) (exp (gen) (mul x l-2)))
(hash (exp (gen) (mul y l-0 l-1)) (exp (gen) (mul x l-2))))
(neq l-0 l) (undisclosed l-0) (undisclosed l-2) (undisclosed l)
(undisclosed (mul l-0 l-1)))
(leads-to ((2 1) (1 0)) ((4 1) (5 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 encryption-test (added-strand ltx-gen 3)
(sig (body b (exp (gen) l-2) (pubk "sig" b)) (privk "sig" b)) (1 1))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a (exp (gen) (mul l-0 l-1)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x (rec l) l-2))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0 l-1))
(exp (gen) (mul x l-2)))))))
((load priv-stor-0 (cat pt-0 (pv a l-0)))
(recv
(sig (body b (exp (gen) l-2) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-1))
(enc na nb a b
(hash (exp (gen) (mul y l-0 l-1))
(exp (gen) (mul x l-2)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-1))))
((load priv-stor-1 (cat pt-3 (pv self l-1)))
(stor priv-stor-1 (cat pt-4 "nil")) (send l-1))
((load priv-stor-2 (cat pt-5 ignore-1))
(stor priv-stor-2 (cat pt-6 (pv b l-2)))
(send
(sig (body b (exp (gen) l-2) (pubk "sig" b)) (privk "sig" b)))))
(label 45)
(parent 36)
(unrealized (0 0) (0 1) (0 2))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (alpha expt)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (y y) (alpha (mul alpha l)) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-0) (eta (mul alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(deflistener (cat (exp (gen) y) alpha))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-0) (l l-0))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (0 0)) ((4 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y (mul alpha l)) (y x) (y l-0) (x l) (x l-0) (l alpha))
(precur (3 0))
(gen-st (pv b l-0) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y l)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul alpha y l)) (exp (gen) (mul x l-0))))
(neq l l-0) (undisclosed l) (undisclosed l-0)
(undisclosed (mul alpha l)))
(leads-to ((2 1) (1 0)) ((4 1) (0 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation channel-test (displaced 5 4 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (0 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor-0 (cat pt-2 (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul alpha l)) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y l))
(exp (gen) (mul x l-0)))))))
((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 alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y l))
(exp (gen) (mul x l-0)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((recv (cat (exp (gen) y) alpha)) (send (cat (exp (gen) y) alpha)))
((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 46)
(parent 37)
(unrealized (0 1))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (alpha expt)
(y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (mul alpha l)) (chi (mul x l-0 (rec l-1))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta l-0) (eta (mul alpha y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) alpha))
(defstrand ltx-gen 3 (ignore ignore-0) (self b)
(priv-stor priv-stor-1) (l l-0))
(defstrand ltx-gen 2 (ignore ignore-1) (self b) (priv-stor priv-stor)
(l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 2) (1 1)) ((5 1) (0 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul alpha l)) (y (mul x l-0 (rec l-1))) (y l-1) (x l)
(x l-0) (l alpha))
(precur (3 0))
(gen-st (pv b l-1) (pv a l))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul alpha y l)) (exp (gen) (mul x l-0)))
(hash (exp (gen) (mul alpha y l)) (exp (gen) (mul x l-0))))
(neq l l-1) (undisclosed l) (undisclosed l-0) (undisclosed l-1)
(undisclosed (mul alpha l)))
(leads-to ((2 1) (1 0)) ((5 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 b l-1))) (0 0))
(strand-map 0 1 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul alpha l)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l-0 (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul alpha y l))
(exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-0 (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 alpha y))
(enc na nb a b
(hash (exp (gen) (mul alpha y l))
(exp (gen) (mul x l-0)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) alpha)) (send (cat (exp (gen) y) alpha)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv b l-0)))
(send
(sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-4 ignore-1))
(stor priv-stor (cat pt (pv b l-1)))))
(label 47)
(parent 37)
(unrealized (0 1) (0 2))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (chi expt)
(l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha (one)) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul (rec l) y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (rec l)))
(deflistener (hash (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(deflistener l)
(precedes ((0 3) (3 0)) ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (6 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y (one)) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))) (neq l l-1)
(undisclosed l) (undisclosed (mul chi l-0)) (undisclosed l-1)
(undisclosed (one)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener l) (rec l) (3 0))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv (sig (body a-0 (gen) (pubk "sig" a-0)) (privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (rec l)))
(send (cat (exp (gen) y) (rec l))))
((recv (hash (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) y) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) y) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) y) (exp (gen) (mul chi l-0 x)))))
((recv l) (send l)))
(label 48)
(parent 38)
(unrealized (0 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l x l-0 l-1 rndx) (beta expt) (l-2 rndx) (w expt) (x-0 y x-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w x-0)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-2) (x x) (beta (mul chi l))
(eta (mul (rec l-2) w x-0 y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-2))
(deflistener (cat (exp (gen) y) (mul (rec l-2) w x-0)))
(deflistener
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(defstrand init 3 (na na-1) (a a-1) (b b-1) (priv-stor priv-stor-1)
(l l-1) (x x-1) (beta beta))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 2) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-2)
(uniq-gen x y x-1)
(absent (x (mul chi l)) (x l-2) (y (mul chi l x (rec l-0))) (y l-0)
(y (mul w x-0)) (x-1 l-1) (x-1 beta))
(precur (3 0) (6 0))
(gen-st (pv a l-2) (pv b l-0) (pv a-1 l-1))
(facts (neq a-1 b-1) (neq a b-0) (neq b a-0) (neq b-1 a-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(neq l-2 l-0) (undisclosed l-2) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w x-0)))
(leads-to ((2 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-1) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-2)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-2) w x-0 y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-2))))
((recv (cat (exp (gen) y) (mul (rec l-2) w x-0)))
(send (cat (exp (gen) y) (mul (rec l-2) w x-0))))
((recv (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(send (cat (exp (gen) x-1) (mul w x-0 y (rec x-1)))))
((load priv-stor-1 (cat pt-2 (pv a-1 l-1)))
(recv
(sig (body b-1 (exp (gen) beta) (pubk "sig" b-1))
(privk "sig" b-1)))
(send (cat na-1 a-1 b-1 (exp (gen) x-1)))))
(label 49)
(parent 39)
(unrealized (0 0) (1 3) (3 0) (6 0) (7 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx) (w expt)
(l-0 rndx) (beta expt) (x y x-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha (mul w x)) (chi (mul (rec l) beta x-0)))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-0) (x x-0) (beta beta)
(eta (mul w (rec l-0) x y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-0))
(deflistener (cat (exp (gen) y) (mul w (rec l-0) x)))
(deflistener
(hash (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0))))
(deflistener (cat (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0))))
(deflistener (cat (exp (gen) x-0) (mul w x y (rec x-0))))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-0)
(uniq-gen y x-0)
(absent (y (mul (rec l) beta x-0)) (y l) (y (mul w x)) (x-0 l-0)
(x-0 beta))
(precur (3 0) (6 0))
(gen-st (pv a l-0) (pv b l))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0)))
(hash (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0))))
(neq l-0 l) (undisclosed l-0) (undisclosed beta) (undisclosed l)
(undisclosed (mul w x)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 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
((load priv-stor (cat pt (pv b l)))
(recv
(sig (body a-0 (exp (gen) (mul w x)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul (rec l) beta x-0))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w x y))
(exp (gen) (mul beta x-0)))))))
((load priv-stor-0 (cat pt-0 (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)))
(recv
(cat (exp (gen) (mul w (rec l-0) x y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w x y))
(exp (gen) (mul beta x-0)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-0))))
((recv (cat (exp (gen) y) (mul w (rec l-0) x)))
(send (cat (exp (gen) y) (mul w (rec l-0) x))))
((recv (hash (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0))))
(send (hash (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0)))))
((recv (cat (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0))))
(send (cat (exp (gen) (mul w x y)) (exp (gen) (mul beta x-0)))))
((recv (cat (exp (gen) x-0) (mul w x y (rec x-0))))
(send (cat (exp (gen) x-0) (mul w x y (rec x-0))))))
(label 50)
(parent 39)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l x l-0 l-1 rndx) (w expt) (y rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha w) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul (rec l-1) w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul (rec l-1) w)))
(deflistener (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (gen) (mul w y)))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen x y)
(absent (x (mul chi l)) (x l-1) (y (mul chi l x (rec l-0))) (y l-0)
(y w))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed w))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test
(contracted (l-2 l-1) (w-0 (mul (rec l-1) w)) (y-0 y)
(w-1 (mul w y)) (y-1 y) (w (mul w y))) (gen) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) w) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-1) w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul (rec l-1) w)))
(send (cat (exp (gen) y) (mul (rec l-1) w))))
((recv (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
(label 51)
(parent 39)
(unrealized (0 0) (1 3) (3 0) (6 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l x l-0 l-1 rndx) (alpha chi-0 expt) (l-2 rndx) (w expt)
(y y-0 y-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y-0) (alpha (mul w y)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-2) (x x) (beta (mul chi l))
(eta (mul (rec l-2) w y y-0)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-2))
(deflistener (cat (exp (gen) y-0) (mul (rec l-2) w y)))
(deflistener
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b b-1)
(priv-stor priv-stor-1) (l l-1) (y y-1) (alpha alpha) (chi chi-0))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 3) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-2)
(uniq-gen x y-0 y-1)
(absent (x (mul chi l)) (x l-2) (y-0 (mul chi l x (rec l-0)))
(y-0 l-0) (y-0 (mul w y)) (y-1 l-1) (y-1 alpha) (y-1 chi-0))
(precur (3 0) (6 0))
(gen-st (pv a l-2) (pv b l-0) (pv b-1 l-1))
(facts (neq b-1 a-1) (neq a b-0) (neq b a-0) (neq a-1 b-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(neq l-2 l-0) (undisclosed l-2) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w y)))
(leads-to ((2 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
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-2)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-2) w y y-0))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-2))))
((recv (cat (exp (gen) y-0) (mul (rec l-2) w y)))
(send (cat (exp (gen) y-0) (mul (rec l-2) w y))))
((recv (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul w y y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-2 (pv b-1 l-1)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1)))
(recv (cat na-1 a-1 b-1 (exp (gen) chi-0)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 b-1
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul l-1 chi-0))))))))
(label 52)
(parent 39)
(unrealized (0 0) (1 3) (3 0) (6 0) (7 0))
(comment "2 in cohort - 2 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha w) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul (rec l) w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (mul (rec l) w)))
(deflistener (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) y) w))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y w) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0) (6 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed w))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 0 resp 4) (exp (gen) y-0) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) w) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (mul (rec l) w)))
(send (cat (exp (gen) y) (mul (rec l) w))))
((recv (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
(label 53)
(parent 39)
(unrealized (0 0) (1 3) (3 0))
(comment "5 in cohort - 5 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (b a b-0 self name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l x l-0 rndx) (w expt) (l-1 y l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a self) (b b-0)
(priv-stor priv-stor-0) (l l-2) (x x) (beta (mul chi l))
(eta (mul w l-1 y (rec l-2))))
(deflistener (cat (exp (gen) y) (mul w l-1 (rec l-2))))
(deflistener
(hash (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) l-2) (mul w l-1 y (rec l-2))))
(defstrand ltx-gen 3 (ignore ignore) (self self)
(priv-stor priv-stor-0) (l l-2))
(precedes ((0 3) (2 0)) ((0 3) (5 0)) ((1 2) (0 2)) ((2 1) (1 3))
((3 1) (1 3)) ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (1 0))
((6 2) (5 0)))
(non-orig (privk "sig" b) (privk "sig" self))
(uniq-orig nb na-0 l-2)
(uniq-gen x y)
(absent (x (mul chi l)) (x l-2) (y (mul chi l x (rec l-0))) (y l-0)
(y (mul w l-1)))
(precur (2 0) (5 0))
(gen-st (pv b l-0) (pv self l-2))
(facts (neq self b-0) (neq b a) (neq b-0 self) (neq a b)
(eq (hash (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x))))
(neq l-2 l-0) (undisclosed l-2) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w l-1)))
(leads-to ((6 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 2 7 ltx-gen 3) (exp (gen) l-3) (6 0))
(strand-map 0 1 6 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) (mul w l-1)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul w l-1 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 (pv self l-2)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 self b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w l-1 y (rec l-2)))
(enc na-0 nb-0 self b-0
(hash (exp (gen) (mul w l-1 y))
(exp (gen) (mul chi l x)))))))
((recv (cat (exp (gen) y) (mul w l-1 (rec l-2))))
(send (cat (exp (gen) y) (mul w l-1 (rec l-2)))))
((recv (hash (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w l-1 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) l-2) (mul w l-1 y (rec l-2))))
(send (cat (exp (gen) l-2) (mul w l-1 y (rec l-2)))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv self l-2)))
(send
(sig (body self (exp (gen) l-2) (pubk "sig" self))
(privk "sig" self)))))
(label 54)
(parent 39)
(unrealized (0 0) (1 3) (2 0) (5 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
(a b a-0 b-0 self name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l x l-0 l-1 rndx) (w expt) (l-2 y l-3 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w l-2)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul (rec l-1) w l-2 y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul (rec l-1) w l-2)))
(deflistener
(hash (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) l-3) (mul w l-2 y (rec l-3))))
(defstrand ltx-gen 3 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-3))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 2) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1 l-3)
(uniq-gen x y)
(absent (x (mul chi l)) (x l-1) (y (mul chi l x (rec l-0))) (y l-0)
(y (mul w l-2)))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w l-2)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-3) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w l-2)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w l-2 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-1) w l-2 y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w l-2 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul (rec l-1) w l-2)))
(send (cat (exp (gen) y) (mul (rec l-1) w l-2))))
((recv (hash (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w l-2 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) l-3) (mul w l-2 y (rec l-3))))
(send (cat (exp (gen) l-3) (mul w l-2 y (rec l-3)))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-3)))
(send
(sig (body self (exp (gen) l-3) (pubk "sig" self))
(privk "sig" self)))))
(label 55)
(parent 39)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (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 ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (1 3)) ((3 1) (0 0))
((3 2) (1 1)) ((4 1) (1 0)) ((4 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y x) (y l) (y l-0) (x l) (x l-0))
(precur (2 0))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))) (neq l-0 l)
(undisclosed l-0) (undisclosed l))
(leads-to ((3 1) (0 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 5 ltx-gen 3)
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 4 2 3)
(traces
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((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-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 56)
(parent 43)
(seen 33)
(seen-ops
(33 (operation generalization deleted (2 0)) (strand-map 0 1 3 4)))
(realized)
(comment "1 in cohort - 0 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 6 ltx-gen 3)
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 5 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))))
(label 57)
(parent 44)
(unrealized (0 2))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a self name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(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)) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (x x) (beta l-1) (eta (mul y l-0)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
(l l))
(deflistener (cat (exp (gen) y) l-0))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-0) (l l-0))
(defstrand ltx-disclose 3 (self self) (priv-stor priv-stor-0) (l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self b)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (5 0)) ((5 2) (3 0)) ((6 1) (0 0)) ((6 2) (1 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y x) (y (mul l l-0)) (y l-1) (x l) (x l-1))
(precur (3 0))
(gen-st (pv b l-1) (pv a l) (pv self l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1))))
(neq l l-1) (undisclosed l) (undisclosed l-1)
(undisclosed (mul l l-0)))
(leads-to ((2 1) (1 0)) ((4 1) (5 0)) ((6 1) (0 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 channel-test (displaced 7 6 ltx-gen 2)
(ch-msg priv-stor-2 (cat pt-6 (pv b l-2))) (0 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor-1 (cat pt-5 (pv b l-1)))
(recv
(sig (body a (exp (gen) (mul l l-0)) (pubk "sig" a))
(privk "sig" a))) (recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor (cat pt (pv a l)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-0))
(enc na nb a b
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor (cat pt-0 ignore))
(stor priv-stor (cat pt (pv a l))))
((recv (cat (exp (gen) y) l-0)) (send (cat (exp (gen) y) l-0)))
((load priv-stor-0 (cat pt-1 ignore-0))
(stor priv-stor-0 (cat pt-2 (pv self l-0))))
((load priv-stor-0 (cat pt-2 (pv self l-0)))
(stor priv-stor-0 (cat pt-3 "nil")) (send l-0))
((load priv-stor-1 (cat pt-4 ignore-1))
(stor priv-stor-1 (cat pt-5 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))))
(label 58)
(parent 45)
(unrealized (0 1))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb data)
(b a self name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
(priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
(y x l l-0 l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-2) (y y) (alpha (mul l l-0)) (chi (mul x l-1 (rec l-2))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l) (x x) (beta l-1) (eta (mul y l-0)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) l-0))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-0))
(defstrand ltx-disclose 3 (self self) (priv-stor priv-stor-1) (l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self b)
(priv-stor priv-stor-2) (l l-1))
(defstrand ltx-gen 2 (ignore ignore-2) (self b) (priv-stor priv-stor)
(l l-2))
(precedes ((0 3) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (1 3))
((4 1) (5 0)) ((5 2) (3 0)) ((6 2) (1 1)) ((7 1) (0 0)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1 l-2)
(uniq-gen y x)
(absent (y (mul x l-1 (rec l-2))) (y (mul l l-0)) (y l-2) (x l)
(x l-1))
(precur (3 0))
(gen-st (pv b l-2) (pv a l) (pv self l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1))))
(neq l l-2) (undisclosed l) (undisclosed l-1) (undisclosed l-2)
(undisclosed (mul l l-0)))
(leads-to ((2 1) (1 0)) ((4 1) (5 0)) ((7 1) (0 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 channel-test (added-strand ltx-gen 2)
(ch-msg priv-stor (cat pt (pv b l-2))) (0 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-2)))
(recv
(sig (body a (exp (gen) (mul l l-0)) (pubk "sig" a))
(privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l-1 (rec l-2)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
(send (cat na a b (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-0))
(enc na nb a b
(hash (exp (gen) (mul y l l-0)) (exp (gen) (mul x l-1)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) l-0)) (send (cat (exp (gen) y) l-0)))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-0))))
((load priv-stor-1 (cat pt-3 (pv self l-0)))
(stor priv-stor-1 (cat pt-4 "nil")) (send l-0))
((load priv-stor-2 (cat pt-5 ignore-1))
(stor priv-stor-2 (cat pt-6 (pv b l-1)))
(send
(sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-7 ignore-2))
(stor priv-stor (cat pt (pv b l-2)))))
(label 59)
(parent 45)
(unrealized (0 1) (0 2))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-0)
(l l-0) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (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 ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (1 3)) ((3 1) (0 0))
((3 2) (1 1)) ((4 1) (1 0)) ((4 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y x) (y l) (y l-0) (x l) (x l-0) (l-0 (one)))
(precur (2 0))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))) (neq l-0 l)
(undisclosed l-0) (undisclosed l))
(leads-to ((3 1) (0 0)) ((4 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 5 ltx-gen 3)
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 4 2 3)
(traces
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((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-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 60)
(parent 46)
(realized)
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(precedes ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1)
(l-1 (one)))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 0)) ((5 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation encryption-test (displaced 2 6 ltx-gen 3)
(sig (body a (exp (gen) l-2) (pubk "sig" a)) (privk "sig" a)) (0 1))
(strand-map 0 1 5 2 3 4)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))))
(label 61)
(parent 47)
(unrealized (0 2))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 data) (a b a-0 b-0 b-1 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l x l-0 rndx) (beta w expt) (x-0 y x-1 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w x-0)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul w x-0 y (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul w x-0 (rec l-1))))
(deflistener
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(defstrand init 3 (na na-1) (a a) (b b-1) (priv-stor priv-stor-0)
(l l-1) (x x-1) (beta beta))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (7 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (5 0)) ((7 2) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-1)
(uniq-gen x y x-1)
(absent (x (mul chi l)) (x l-1) (y (mul chi l x (rec l-0))) (y l-0)
(y (mul w x-0)) (x-1 beta) (x-1 l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-1) (neq a b-0) (neq b a-0) (neq b-1 a) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w x-0)))
(leads-to ((2 1) (1 0)) ((2 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 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-2 (pv a-1 l-2))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w x-0 y (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul w x-0 (rec l-1))))
(send (cat (exp (gen) y) (mul w x-0 (rec l-1)))))
((recv (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(send (cat (exp (gen) x-1) (mul w x-0 y (rec x-1)))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-1 (exp (gen) beta) (pubk "sig" b-1))
(privk "sig" b-1))) (send (cat na-1 a b-1 (exp (gen) x-1)))))
(label 62)
(parent 49)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 na-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt) (l x l-0 rndx)
(beta expt) (l-1 rndx) (w expt) (x-0 y x-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w x-0)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul (rec l-1) w x-0 y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul (rec l-1) w x-0)))
(deflistener
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(defstrand init 3 (na na-1) (a a-1) (b b-1) (priv-stor priv-stor-1)
(l l-2) (x x-1) (beta beta))
(defstrand ltx-gen 2 (ignore ignore-0) (self a-1)
(priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 2) (6 0)) ((8 1) (7 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 na-1 l-1 l-2)
(uniq-gen x y x-1)
(absent (x (mul chi l)) (x l-1) (y (mul chi l x (rec l-0))) (y l-0)
(y (mul w x-0)) (x-1 beta) (x-1 l-2))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0) (pv a-1 l-2))
(facts (neq a-1 b-1) (neq a b-0) (neq b a-0) (neq b-1 a-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w x-0)))
(leads-to ((2 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-2 (pv a-1 l-2))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w x-0)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-1) w x-0 y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w x-0 y))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul (rec l-1) w x-0)))
(send (cat (exp (gen) y) (mul (rec l-1) w x-0))))
((recv (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w x-0 y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) x-1) (mul w x-0 y (rec x-1))))
(send (cat (exp (gen) x-1) (mul w x-0 y (rec x-1)))))
((load priv-stor-1 (cat pt-2 (pv a-1 l-2)))
(recv
(sig (body b-1 (exp (gen) beta) (pubk "sig" b-1))
(privk "sig" b-1))) (send (cat na-1 a-1 b-1 (exp (gen) x-1))))
((load priv-stor-1 (cat pt-3 ignore-0))
(stor priv-stor-1 (cat pt-2 (pv a-1 l-2)))))
(label 63)
(parent 49)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l x l-0 l-1 rndx) (w expt) (y rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha w) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul (rec l-1) w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul (rec l-1) w)))
(deflistener (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (gen) (mul w y)))
(deflistener y)
(precedes ((0 3) (3 0)) ((0 3) (7 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 1) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen x y)
(absent (x (mul chi l)) (x l-1) (y (mul chi l x (rec l-0))) (y l-0)
(y w))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed w))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener y) (mul w y) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) w) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-1) w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul (rec l-1) w)))
(send (cat (exp (gen) y) (mul (rec l-1) w))))
((recv (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
((recv y) (send y)))
(label 64)
(parent 51)
(unrealized (0 0) (1 3) (3 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 name) (pt pt-0 pt-1 pval)
(priv-stor priv-stor-0 locn) (chi expt) (l x l-0 rndx)
(alpha chi-0 w expt) (y y-0 y-1 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y-0) (alpha (mul w y)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul w y y-0 (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y-0) (mul w y (rec l-1))))
(deflistener
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b a)
(priv-stor priv-stor-0) (l l-1) (y y-1) (alpha alpha) (chi chi-0))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (7 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (5 0)) ((7 3) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-1)
(uniq-gen x y-0 y-1)
(absent (x (mul chi l)) (x l-1) (y-0 (mul chi l x (rec l-0)))
(y-0 l-0) (y-0 (mul w y)) (y-1 alpha) (y-1 chi-0) (y-1 l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a a-1) (neq a b-0) (neq b a-0) (neq a-1 a) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w y)))
(leads-to ((2 1) (1 0)) ((2 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 2 ltx-gen 2)
(ch-msg priv-stor-1 (cat pt-2 (pv b-1 l-2))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y y-0 (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y-0) (mul w y (rec l-1))))
(send (cat (exp (gen) y-0) (mul w y (rec l-1)))))
((recv (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul w y y-0 (rec y-1)))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1))) (recv (cat na-1 a-1 a (exp (gen) chi-0)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 a
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul chi-0 l-1))))))))
(label 65)
(parent 52)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 na-1 nb-1 data)
(a b a-0 b-0 a-1 b-1 name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt) (l x l-0 rndx)
(alpha chi-0 expt) (l-1 rndx) (w expt) (y y-0 y-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y-0) (alpha (mul w y)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul (rec l-1) w y y-0)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y-0) (mul (rec l-1) w y)))
(deflistener
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(defstrand resp 4 (na na-1) (nb nb-1) (a a-1) (b b-1)
(priv-stor priv-stor-1) (l l-2) (y y-1) (alpha alpha) (chi chi-0))
(defstrand ltx-gen 2 (ignore ignore-0) (self b-1)
(priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 3) (6 0)) ((8 1) (7 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 nb-1 l-1 l-2)
(uniq-gen x y-0 y-1)
(absent (x (mul chi l)) (x l-1) (y-0 (mul chi l x (rec l-0)))
(y-0 l-0) (y-0 (mul w y)) (y-1 alpha) (y-1 chi-0) (y-1 l-2))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0) (pv b-1 l-2))
(facts (neq b-1 a-1) (neq a b-0) (neq b a-0) (neq a-1 b-1) (neq b-0 a)
(neq a-0 b)
(eq (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w y)))
(leads-to ((2 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-2 (pv b-1 l-2))) (7 0))
(strand-map 0 1 2 3 4 5 6 7)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w y)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y-0)
(enc na nb a-0 b
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l-1) w y y-0))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y y-0))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y-0) (mul (rec l-1) w y)))
(send (cat (exp (gen) y-0) (mul (rec l-1) w y))))
((recv (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y y-0)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y-1) (mul w y y-0 (rec y-1))))
(send (cat (exp (gen) y-1) (mul w y y-0 (rec y-1)))))
((load priv-stor-1 (cat pt-2 (pv b-1 l-2)))
(recv
(sig (body a-1 (exp (gen) alpha) (pubk "sig" a-1))
(privk "sig" a-1)))
(recv (cat na-1 a-1 b-1 (exp (gen) chi-0)))
(send
(cat (exp (gen) y-1)
(enc na-1 nb-1 a-1 b-1
(hash (exp (gen) (mul alpha y-1))
(exp (gen) (mul chi-0 l-2)))))))
((load priv-stor-1 (cat pt-3 ignore-0))
(stor priv-stor-1 (cat pt-2 (pv b-1 l-2)))))
(label 66)
(parent 52)
(unrealized (0 0) (1 3) (3 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul y l-1)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-1))
(deflistener
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) (mul l-1 l-1)))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-1))
(x (mul chi l)) (x l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 2 ltx-gen 2) l-2 (3 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul l-1 l-1)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-1))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1)))
((recv (hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(send
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(send
(cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) (mul l-1 l-1)))
(send (cat (exp (gen) y) (mul l-1 l-1)))))
(label 67)
(parent 53)
(unrealized (0 0) (0 1) (3 0) (5 0) (6 0))
(comment "1 in cohort - 1 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (one)))
(deflistener (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) l-1))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y l-1) (x (mul chi l))
(x l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (contracted (l-2 l-1) (w l-1)) (one) (3 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) l-1) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((recv (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1))))
(label 68)
(parent 53)
(unrealized (0 0) (0 1) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
(a b a-0 b-0 self name) (pt pt-0 pt-1 pt-2 pt-3 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (chi expt)
(l y x l-0 l-1 l-2 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-2)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul y l-2)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-2))
(deflistener
(hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) (mul l-1 l-2)))
(defstrand ltx-gen 2 (ignore ignore-0) (self self)
(priv-stor priv-stor-1) (l l-2))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0))
((7 1) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1 l-2)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-2))
(x (mul chi l)) (x l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-2)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-strand ltx-gen 2) l-2 (3 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul l-1 l-2)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-2))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y l-1 l-2))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-2)) (send (cat (exp (gen) y) l-2)))
((recv (hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(send
(hash (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x))))
(send
(cat (exp (gen) (mul y l-1 l-2)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) (mul l-1 l-2)))
(send (cat (exp (gen) y) (mul l-1 l-2))))
((load priv-stor-1 (cat pt-2 ignore-0))
(stor priv-stor-1 (cat pt-3 (pv self l-2)))))
(label 69)
(parent 53)
(unrealized (0 0) (0 1) (3 0) (5 0) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (w chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) w))
(deflistener
(hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) (mul w l-1)))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul w l-1)) (y (mul chi l x (rec l-0))) (y l-0)
(x (mul chi l)) (x l-1) (l-1 w))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-absence l-1 w) w (3 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w l-1)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) (mul w l-1)))
(send (cat (exp (gen) y) (mul w l-1)))))
(label 70)
(parent 53)
(unrealized (0 0) (0 1) (5 0) (6 0))
(comment "3 in cohort - 3 not yet seen"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (l rndx)
(w chi expt) (l-0 y x l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-1) (y y) (alpha w) (chi (mul chi l-0 x (rec l-1))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l) (x x) (beta (mul chi l-0))
(eta (mul (rec l) w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l))
(deflistener (cat (exp (gen) y) (mul (rec l) w)))
(deflistener (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(deflistener (cat (exp (gen) y) w))
(deflistener l)
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (7 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (5 0)) ((7 1) (3 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l)
(uniq-gen y x)
(absent (y w) (y (mul chi l-0 x (rec l-1))) (y l-1) (x l)
(x (mul chi l-0)))
(precur (3 0) (6 0))
(gen-st (pv a l) (pv b l-1))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(neq l l-1) (undisclosed l) (undisclosed (mul chi l-0))
(undisclosed l-1) (undisclosed w))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener l) (mul (rec l) w) (3 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-1)))
(recv
(sig (body a-0 (exp (gen) w) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l-0 x (rec l-1)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-0 (pv a l)))
(recv
(sig (body b-0 (exp (gen) (mul chi l-0)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul (rec l) w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l))))
((recv (cat (exp (gen) y) (mul (rec l) w)))
(send (cat (exp (gen) y) (mul (rec l) w))))
((recv (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(send (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x))))
(send (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l-0 x)))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv l) (send l)))
(label 71)
(parent 53)
(unrealized (0 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x l)) l-0))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((4 1) (6 0)) ((5 1) (1 0)) ((5 2) (0 1))
((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 x l)) l-0))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x l)) l-0))
(send (cat (exp (gen) (mul x l)) l-0))))
(label 72)
(parent 57)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x (rec l-0))) l))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)) ((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 x (rec l-0))) l))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x (rec l-0))) l))
(send (cat (exp (gen) (mul x (rec l-0))) l))))
(label 73)
(parent 57)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-0))) x))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)) ((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 l (rec l-0))) x))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul l (rec l-0))) x))
(send (cat (exp (gen) (mul l (rec l-0))) x))))
(label 74)
(parent 57)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
(y x l l-0 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l) (y y) (alpha l-0) (chi x))
(defstrand init 4 (na na) (nb nb) (a a) (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 ltx-gen 3 (ignore ignore-0) (self a)
(priv-stor priv-stor-0) (l l-0))
(precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 1) (0 0)) ((2 2) (1 1))
((3 1) (1 0)) ((3 2) (0 1)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0)
(uniq-gen y x)
(absent (y x) (y l) (y l-0) (x l) (x l-0) (l-0 (one)))
(gen-st (pv b l) (pv a l-0))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))) (neq l-0 l)
(undisclosed l-0) (undisclosed l))
(leads-to ((2 1) (0 0)) ((3 1) (1 0)))
(rule fact-resp-neq0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
(operation generalization deleted (2 0))
(strand-map 0 1 3 4)
(traces
((load priv-stor (cat pt-0 (pv b l)))
(recv
(sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) x)))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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)))
(recv
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-0)) (exp (gen) (mul x l)))))))
((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-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 75)
(parent 60)
(realized)
(shape)
(satisfies yes)
(maps
((0 1)
((ltxa l-0) (ltxb l) (x x) (y y) (eta y) (chi x) (beta l)
(alpha l-0) (a a) (b b) (a-0 a) (b-0 b) (na na) (nb nb)
(priv-stor priv-stor) (na-0 na) (nb-0 nb)
(priv-stor-0 priv-stor-0))))
(origs (l-0 (3 1)) (pt-2 (3 1)) (l (2 1)) (pt-0 (2 1)) (nb (0 3))
(na (1 2)))
(ugens (y (0 3)) (x (1 2))))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x l)) l-0))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((4 1) (6 0)) ((5 1) (1 0)) ((5 2) (0 1))
((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1)
(l-1 (one)))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 x l)) l-0))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x l)) l-0))
(send (cat (exp (gen) (mul x l)) l-0))))
(label 76)
(parent 61)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul x (rec l-0))) l))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)) ((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1)
(l-1 (one)))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 x (rec l-0))) l))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul x (rec l-0))) l))
(send (cat (exp (gen) (mul x (rec l-0))) l))))
(label 77)
(parent 61)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore ignore-0 ignore-1 mesg) (na nb data) (b a name)
(pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
(priv-stor priv-stor-0 priv-stor-1 locn) (y x l l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul x l (rec l-0))))
(defstrand init 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
(l l-1) (x x) (beta l) (eta y))
(deflistener (cat (exp (gen) y) (one)))
(defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor-0)
(l l))
(defstrand ltx-gen 2 (ignore ignore-0) (self b) (priv-stor priv-stor)
(l l-0))
(defstrand ltx-gen 3 (ignore ignore-1) (self a)
(priv-stor priv-stor-1) (l l-1))
(deflistener (cat (exp (gen) (mul l (rec l-0))) x))
(precedes ((0 3) (2 0)) ((1 2) (6 0)) ((2 1) (1 3)) ((3 2) (1 1))
((4 1) (0 0)) ((5 1) (1 0)) ((5 2) (0 1)) ((6 1) (0 2)))
(non-orig (privk "sig" b) (privk "sig" a))
(uniq-orig na nb l l-0 l-1)
(uniq-gen y x)
(absent (y (mul x l (rec l-0))) (y l-0) (y l-1) (x l) (x l-1)
(l-1 (one)))
(precur (2 0))
(gen-st (pv b l-0) (pv a l-1))
(facts (neq b a) (neq a b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed l) (undisclosed l-0))
(leads-to ((4 1) (0 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 l (rec l-0))) x))
(exp (gen) (mul x l (rec l-0))) (0 2))
(strand-map 0 1 2 3 4 5)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
(recv (cat na a b (exp (gen) (mul x l (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((load priv-stor-1 (cat pt-4 (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) y)
(enc na nb a b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul x l)))))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((load priv-stor-0 (cat pt-0 ignore))
(stor priv-stor-0 (cat pt-1 (pv b l)))
(send
(sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
((load priv-stor (cat pt-2 ignore-0))
(stor priv-stor (cat pt (pv b l-0))))
((load priv-stor-1 (cat pt-3 ignore-1))
(stor priv-stor-1 (cat pt-4 (pv a l-1)))
(send
(sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a))))
((recv (cat (exp (gen) (mul l (rec l-0))) x))
(send (cat (exp (gen) (mul l (rec l-0))) x))))
(label 78)
(parent 61)
(unrealized (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul l-1 l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul y l-1)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) l-1))
(deflistener
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) (mul l-1 l-1)))
(deflistener l-1)
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (7 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (5 0)) ((7 1) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y (mul l-1 l-1))
(x (mul chi l)) (x l-1))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul l-1 l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener l-1) (mul l-1 l-1) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul l-1 l-1)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul y l-1))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y l-1 l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1)))
((recv (hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(send
(hash (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x))))
(send
(cat (exp (gen) (mul y l-1 l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) (mul l-1 l-1)))
(send (cat (exp (gen) y) (mul l-1 l-1)))) ((recv l-1) (send l-1)))
(label 79)
(parent 67)
(unrealized (0 0) (0 1) (3 0) (7 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha l-1) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l)) (eta y))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (one)))
(deflistener (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) l-1))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul chi l x (rec l-0))) (y l-0) (y l-1) (x (mul chi l))
(x l-1) (l-1 (one)))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (displaced 7 2 ltx-gen 2) l-2 (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) l-1) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) y)
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
((recv (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) l-1)) (send (cat (exp (gen) y) l-1))))
(label 80)
(parent 70)
(unrealized (0 0) (0 1) (6 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (w chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha w) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul w y (rec l-1))))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) (mul w (rec l-1))))
(deflistener (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) w))
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0)) ((6 1) (5 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y w) (y (mul chi l x (rec l-0))) (y l-0) (x (mul chi l))
(x l-1) (l-1 w) (l-1 (mul w (rec l-1))))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed w))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-absence l-1 w) w (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) w) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y (rec l-1)))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) (mul w (rec l-1))))
(send (cat (exp (gen) y) (mul w (rec l-1)))))
((recv (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
(label 81)
(parent 70)
(unrealized (0 0) (1 3) (3 0))
(dead)
(comment "empty cohort"))
(defskeleton dhcr-umx
(vars (ignore mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
(pt pt-0 pt-1 pval) (priv-stor priv-stor-0 locn) (w chi expt)
(l y x l-0 l-1 rndx))
(defstrand resp 4 (na na) (nb nb) (a a-0) (b b) (priv-stor priv-stor)
(l l-0) (y y) (alpha (mul w l-1)) (chi (mul chi l x (rec l-0))))
(defstrand init 4 (na na-0) (nb nb-0) (a a) (b b-0)
(priv-stor priv-stor-0) (l l-1) (x x) (beta (mul chi l))
(eta (mul w y)))
(defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor-0)
(l l-1))
(deflistener (cat (exp (gen) y) w))
(deflistener
(hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(deflistener
(cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(deflistener (cat (exp (gen) y) (mul w l-1)))
(deflistener l-1)
(precedes ((0 3) (3 0)) ((0 3) (6 0)) ((1 2) (0 2)) ((2 1) (1 0))
((2 1) (7 0)) ((3 1) (1 3)) ((4 1) (1 3)) ((5 1) (4 0))
((6 1) (5 0)) ((7 1) (6 0)))
(non-orig (privk "sig" a) (privk "sig" b))
(uniq-orig nb na-0 l-1)
(uniq-gen y x)
(absent (y (mul w l-1)) (y (mul chi l x (rec l-0))) (y l-0)
(x (mul chi l)) (x l-1) (l-1 w))
(precur (3 0) (6 0))
(gen-st (pv a l-1) (pv b l-0))
(facts (neq a b-0) (neq b a-0) (neq b-0 a) (neq a-0 b)
(eq (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))
(hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(neq l-1 l-0) (undisclosed l-1) (undisclosed (mul chi l))
(undisclosed l-0) (undisclosed (mul w l-1)))
(leads-to ((2 1) (1 0)))
(rule fact-init-neq0 fact-resp-neq0 trRl_ltx-gen-at-0
trRl_ltx-gen-at-1)
(operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
(strand-map 0 1 2 3 4 5 6)
(traces
((load priv-stor (cat pt (pv b l-0)))
(recv
(sig (body a-0 (exp (gen) (mul w l-1)) (pubk "sig" a-0))
(privk "sig" a-0)))
(recv (cat na a-0 b (exp (gen) (mul chi l x (rec l-0)))))
(send
(cat (exp (gen) y)
(enc na nb a-0 b
(hash (exp (gen) (mul w y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-0 (pv a l-1)))
(recv
(sig (body b-0 (exp (gen) (mul chi l)) (pubk "sig" b-0))
(privk "sig" b-0))) (send (cat na-0 a b-0 (exp (gen) x)))
(recv
(cat (exp (gen) (mul w y))
(enc na-0 nb-0 a b-0
(hash (exp (gen) (mul w y l-1))
(exp (gen) (mul chi l x)))))))
((load priv-stor-0 (cat pt-1 ignore))
(stor priv-stor-0 (cat pt-0 (pv a l-1))))
((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
((recv (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(send (hash (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x))))
(send (cat (exp (gen) (mul w y l-1)) (exp (gen) (mul chi l x)))))
((recv (cat (exp (gen) y) (mul w l-1)))
(send (cat (exp (gen) y) (mul w l-1)))) ((recv l-1) (send l-1)))
(label 82)
(parent 70)
(unrealized (0 0) (0 1) (7 0))
(dead)
(comment "empty cohort"))
(comment "Nothing left to do")